我目前正在第一次尝试 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 中的正常行为吗?
非常感谢