SpriteKit(Obj-c)SKSpriteNodes'职位未更新

时间:2015-09-13 01:56:25

标签: objective-c sprite-kit position skspritenode nslog

所以这就是正在发生的事情。我有一个不是全局的SKSpriteNode。我创建了一个名为_button1的ivar,并将其设置为 等于 到私有SKSpriteNode。稍后(-touchesEnded),我想知道_button1的位置是什么。它在游戏启动时正常运行,但-touchesMoved更改_button1的位置时,NSLog()无法识别。为了减少事情的复杂性,这里有一些代码片段和一些解释。

1。我有一个SKSpriteNode,除了在其中定义的for-in语句外,无法访问。

SKSpriteNode *button = [SKSpriteNode spriteNodeWithImageNamed:@"Test"];

2。我还有一个名为_button1的实例变量,可以在任何地方访问。

@implementation MainMenuScene
{
  SKSpriteNode *_button1;
}

2。我将_button1设置为等于button

_button1 = button;

第3。我在_button1内使用NSLog()记录-touchesEnded的位置。

NSLog(@"1 Position.x =\t%.2f", _button1.position.x);

Output: "1 Position.x = 250.00"

4。 -touchesMoved导致_button1移动。

5。我再次记录结果,但位置变化尚未被识别。

NSLog(@"1 Position.x =\t%.2f", _button1.position.x);

Output: "1 Position.x = 250.00"

那么这里发生了什么?我尝试了多种解决方案,并将位置重新设置为当前位置,将_button1重新设置为等于button等等。但它并非如此工作。我做错了什么?

0 个答案:

没有答案