Objective c “需要帮助吗?”;预制件选择器:WithObject:AfterDelay:“;当场景暂停时

Objective c “需要帮助吗?”;预制件选择器:WithObject:AfterDelay:“;当场景暂停时,objective-c,sprite-kit,skscene,Objective C,Sprite Kit,Skscene,我需要你的帮助 PreformSelector: WithObject: AfterDelay: 随着场景的暂停。 我正在制作一个游戏,其中有一个暂停按钮,可以暂停场景。然而,这并不影响 PreformSelector: WithObject: AfterDelay: 调用“重载”函数的函数。如果没有此修复,用户可以发射快照,按暂停,等待调用重新加载功能,取消暂停,然后发射。这使得用户可以在“游戏时间”内连续开火,而无需重新加载。有没有办法解决这个问题?您不应该使用性能选择器:withObj

我需要你的帮助

PreformSelector: WithObject: AfterDelay:
随着场景的暂停。 我正在制作一个游戏,其中有一个暂停按钮,可以暂停场景。然而,这并不影响

PreformSelector: WithObject: AfterDelay:

调用“重载”函数的函数。如果没有此修复,用户可以发射快照,按暂停,等待调用重新加载功能,取消暂停,然后发射。这使得用户可以在“游戏时间”内连续开火,而无需重新加载。有没有办法解决这个问题?

您不应该使用
性能选择器:withObject:afterDelay:
,因为用这种方法跟踪定时并存储选择器和对象等会非常麻烦

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

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

由于动作可以暂停和恢复,当您使用
self.paused=YES暂停场景时您的操作也将被暂停,并将在稍后取消暂停场景时恢复到停止的位置。

可能重复的操作
// 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];