所以这就是正在发生的事情。我有一个不是全局的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
等等。但它并非如此工作。我做错了什么?