需要帮助合并“Preform Selector:WithObject:AfterDelay:”并暂停SKScene

时间:2014-08-18 05:14:50

标签: objective-c sprite-kit skscene

我需要帮助纳入

PreformSelector: WithObject: AfterDelay:

随着SKScene被暂停。 我正在制作一个游戏,其中有一个暂停按钮,暂停场景。然而,这并不影响

PreformSelector: WithObject: AfterDelay:

调用"重载"的功能功能。如果没有这个固定,用户可以开枪,按暂停,等待重新加载功能被调用,取消暂停和拍摄。这使得用户可以连续开火,而无需重新加载游戏时间"。有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

您不应该使用performSelector:withObject:afterDelay:,因为跟踪时间并使用该方法存储选择器和对象等将非常麻烦。

相反,请使用SpriteKit的+[SKAction waitForDuration:]操作。

您可能希望执行以下操作(我假设此代码发生在您的某个场景的某个方法中):

// Replace 2.0 below with however long you want to wait, in seconds
SKAction *waitAction = [SKAction waitForDuration:2.0];

// I'm assuming your "Reload" method is a method declared in your scene's
// class and not some other class, so I'm using "self" as the target here.
SKAction *reloadAction = [SKAction performSelector:@selector(Reload) onTarget:self];

SKAction *sequenceAction = [SKAction sequence:@[waitAction, reloadAction]];

// Since I'm assuming this is in your scene implementation, `self` here
// refers to your scene node.
[self runAction:sequenceAction];

由于可以暂停和恢复操作,当您使用self.paused = YES;暂停场景时,您的操作也会暂停,并会在您稍后取消暂停场景时从中断位置恢复。