現在、SpriteKit を初めて試し、いくつかのアクションを使用しています。作成したすべてのノード/スプライトを削除する必要があるという印象を受けましたが、何らかの理由で、画面の高さを超えるとすぐに削除されます。これは SpriteKit の通常の動作ですか?
これがコードです。私は基本的に、アクションを使用して画面全体でスプライトをアニメーション化しています (protrait モードでは下から上へ)。面白いことに、作成したスプライトの数に関係なく、ノード数は 0 のままです。実際にはそれらをカウントしますが、画面の高さを超えるとすぐにそれらを減算します。
-(void) shoot
{
bullet = [SKSpriteNode spriteNodeWithImageNamed:@"bullet"];
bullet.position = CGPointMake(airPlane.position.x, airPlane.position.y + 50);
[self addChild:bullet];
SKAction *moveBullet = [SKAction moveTo:CGPointMake(airPlane.position.x, self.size.height + 20) duration:0.5];
[bullet runAction:moveBullet];
}
スプライトが画面の高さを超えないようにアクションを変更すると、ノード数がカウントを維持します。
この行を変更...
SKAction *moveBullet = [SKAction moveTo:CGPointMake(airPlane.position.x, self.size.height + 20) duration:0.5];
...これに
SKAction *moveBullet = [SKAction moveTo:CGPointMake(airPlane.position.x, self.size.height) duration:0.5];
繰り返しますが、これは SpriteKit の通常の動作ですか?
どうもありがとう