我最近问了一个问题,涉及实施加电;但是,我决定以不同的方式去做。
在我的游戏中,我有一个无尽的滚动背景,主角在收集硬币时向右移动。
当玩家击中蓝色硬币,加电时,我想要 1. 角色变为蓝色(我有框架),2. 背景变为蓝色, 3. 平台变为蓝色(为此提供图像);我希望所有这些因素在 20 秒内发生。
我计划通过在我的其他类(平台类、播放器类)中设置一个带有蓝色实例变量(公共变量)的Blue类来相应地设置为 YES 和 NO(如果击中了蓝色硬币)。但是,它效率不高,并且在我合并计时器时不起作用。
有谁知道如何实现加电?
这是玩家击中蓝色硬币时的代码:
// try remove blue coin
- (void) tryRemoveBluecoin
{
NSMutableArray * currentBluecoinArray = [self getcurrentBluecoinArr];
if(currentBluecoinArray)
{
int playerY = ((CCLayer*)(self.player)).position.y;
for(int x=0; x<[currentBluecoinArray count];x++)
{
CCSprite *bluecoin = [currentBluecoinArray objectAtIndex:x];
if(abs(bluecoin.position.x+bluecoin.parent.position.x-[Player initX])<50)
{
if(abs(bluecoin.position.y+bluecoin.parent.position.y-playerY)<30 && bluecoin.visible && bluecoin.visible)
{
[bluecoin.parent removeChild:bluecoin cleanup:YES];
CGSize winSize = [[CCDirector sharedDirector] winSize];
[[SimpleAudioEngine sharedEngine] playEffect:@"jump.wav" pitch:1 pan:0 gain:1];
// SET BLUE VARIABLE TO YES
NSLog(@"BEGIN BLUE POWER UP EFFECTS FOR 20 SECONDS");
}
}
}
}
[self hitTestOB];
}
感谢您的任何想法!