私がしていること:
次のメソッドを継続的に呼び出して、繰り返しタイマーを使用して数秒ごとに爆弾を設定しています。
//in my init method
SKTexture *Bomb5 = [SKTexture textureWithImageNamed:@"Bomb5.gif"];
SKTexture *Bomb4 = [SKTexture textureWithImageNamed:@"Bomb4.gif"];
SKTexture *Bomb3 = [SKTexture textureWithImageNamed:@"Bomb3.gif"];
SKTexture *Bomb2 = [SKTexture textureWithImageNamed:@"Bomb2.gif"];
SKTexture *Bomb1 = [SKTexture textureWithImageNamed:@"Bomb1.gif"];
//SKTexture *explode = [SKTexture textureWithImageNamed:@"explosionnn.gif"];
countdown = [SKAction animateWithTextures:@[Bomb5,Bomb4, Bomb3, Bomb2, Bomb1] timePerFrame:1];
-(void)setBomb{
SKSpriteNode *bombb;
SKSpriteNode *explostionn;
bombb = [SKSpriteNode spriteNodeWithImageNamed:@"Bomb5.gif"];
explosionn = [SKSpriteNode spriteNodeWithImageNamed:@"explosionnn.gif"];
//set bomb in random locations on screen
NSLog(@"Placing Bomb");
int randomYAxix = [self getRandomNumberBetween:0 to:screenRect.size.height];
int randomXAxix = [self getRandomNumberBetween:0 to:screenRect.size.width];
bombb.position = CGPointMake(randomYAxix, randomXAxix);
self.explosion.position = CGPointMake(randomYAxix, randomXAxix);
bombb.size = CGSizeMake(35, 35);
explosionn.size = CGSizeMake(90, 90);
SKAction *removeNode = [SKAction removeFromParent];
//SKAction *changeHeight = [SKAction resizeToHeight:90 duration:0];
//SKAction *changeWidth = [SKAction resizeToWidth:90 duration:0];
SKAction *sequence = [SKAction sequence:@[countdown, removeNode]];
[bombb runAction: sequence];
//add code here that adds the explosion sprite once the sequence has complete
[self addChild:bombb];
}
私が欲しいもの:
アニメーションが終わった後、爆弾があった場所に次のスプライト(爆発スプライト)が表示されます。
問題:
スプライトを置き換えたり、私がやろうとしていることを支援したりするアクションはありません。SKAction Class Reference しかし、私はこのタスク customActionWithDuration:actionBlock: を見ていますが、それを使用する方法がわからず、検索で例を見つけることもできません。
質問:
create this task を使用して、5 秒間の爆弾スプライト アニメーションが終了した後に爆弾スプライトを爆発スプライトに置き換える方法を教えてもらえますか? ありがとうございました