我在SKSpriteNode
方法中创建didBeginContact
,其中包含联系地址:
CommonBox *boxTwo = [[CommonBox alloc] initWithTexture:[self.mainAtlas textureNamed:@"box07"]];
boxTwo.name = @"regularBox";
boxTwo.position = contact.contactPoint;
[self addChild:boxTwo];
这里的立场是正确的。然后调用update方法,并且在执行任何代码之前,在更新方法开始时,box的位置神奇地改变为0,0。这是为什么? 这两个事件之间没有执行其他代码。这真让我抓狂。我尝试从该对象中删除所有碰撞和接触位掩码,但无论如何它都会变为零。对象是合法的等等。
编辑:如果我从该节点移除物理体,我将获得所需的位置。但是如果它有物理体,我如何设置节点的位置?
答案 0 :(得分:7)
我发现了我的错误 - 你必须在设置节点位置后创建物理体。在物理体位置之后设置位置不会做任何事情。