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