控制Sprite Kit中一个对象的实例数

时间:2014-10-23 17:29:30

标签: objective-c sprite-kit instance

触摸屏幕时,方法

 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

创建SKSpriteNode的实例。每次触摸都会产生另一种触通过使用一系列SKActions,我已经让新创建的精灵在短暂的时间后淡出,以免过多的节点过度运行场景。我现在唯一想要添加到代码中的是SKSpriteNode只有在从场景中移除前一个之后才能触摸时显示的能力。因此,在删除之前的SKSpriteNode之前,用户可以随意触摸屏幕,而不会出现单个屏幕。我尝试过使用IF语句,但它没有奏效:

if (self.children.count == 0)
    {
        [self addChild:self.object];
    }

1 个答案:

答案 0 :(得分:1)

创建一个布尔标志

bool canSpawn = YES;

触摸检查:

if(canSpawn == YES)
{
    //Spawn node
    canSpawn = NO;       
}

因为您使用序列,所以canSpawn将在您开始序列的同时设置为no。

使用设置canSpawn = YES;的runBlock SKAction结束序列这样,当canSpawn设置为NO时,您无法生成,只有在您生成尚未消失的节点时才会生成。一旦它消失,你的canSpawn被设置为YES,这允许你制作另一个精灵。