最近、パワーアップの実装に関する質問をしました。しかし、私はそれを別の方法で進めたいと決心しました。
私のゲームでは、無限にスクロールする背景があり、主人公はコインを集めながら右に移動します。
プレイヤーが青いコインを押すと、パワーアップします。1. キャラクターを青色に変更します (このためのフレームがあります)、2. 背景を青色に変更し、3. プラットフォームを青色に変更します。 (このための画像があります); これらすべての要因が 20 秒間発生することを望みます。
他のクラス (Platform クラス、Player クラス) で、青のインスタンス変数 (パブリック変数) を持つ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];
}
あなたが持っているアイデアをありがとう!