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];