Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SKSPriteNode位置无故更改为0,0_Ios_Sprite Kit - Fatal编程技术网

Ios SKSPriteNode位置无故更改为0,0

Ios SKSPriteNode位置无故更改为0,0,ios,sprite-kit,Ios,Sprite Kit,我在didBeginContact方法中创建了一个SKSpriteNode,该方法带有联系人位置: CommonBox *boxTwo = [[CommonBox alloc] initWithTexture:[self.mainAtlas textureNamed:@"box07"]]; boxTwo.name = @"regularBox"; boxTwo.position = contact.contactPoint; [self addChild:boxTwo]; 这里的位置是正确的。

我在
didBeginContact
方法中创建了一个
SKSpriteNode
,该方法带有联系人位置:

CommonBox *boxTwo = [[CommonBox alloc] initWithTexture:[self.mainAtlas textureNamed:@"box07"]];
boxTwo.name = @"regularBox";
boxTwo.position = contact.contactPoint;
[self addChild:boxTwo];
这里的位置是正确的。然后调用update方法,并在update方法开始时,在执行任何代码之前,将框的位置神奇地更改为0,0。为什么呢? 在这两个事件之间不执行其他代码。这让我快发疯了。我尝试从该对象中删除所有碰撞和接触位掩码,但它仍然变为零。客体是合法的等等


编辑:如果我从该节点移除物理体,我将获得所需的位置。但是,如果节点有物理实体,我如何设置节点的位置呢?

我发现了我的错误-在设置节点位置后,必须创建物理实体。在物理体具有位置后设置位置没有任何作用。

我自己也遇到了这个问题,并怀疑这是一个错误,因为它只发生在更新方法内部。在场景设置期间创建对象时,设置位置的顺序无关紧要。你向苹果公司提交了雷达文件吗?我遇到了这个问题,因为我创建了一个spritenode作为子类,我在场景中也创建了SKspritenode,当我在scene init函数外部初始化子类sprite节点时,位置是0,0,当我初始化在场景中创建的SKspritenode时,一切正常,这没有任何意义?????谢谢,我希望我能早点找到这个。就我而言,这似乎不一致。有时我的子类SKSpriteNodes可以在创建physicsBody之后指定位置,而其他的则不能。目前,我看不出那些有效的和那些无效的之间有任何区别,我将把这归因于框架中可能存在的缺陷。我遇到的问题与库普相同:在大多数情况下,在创建physicsBody之后设置位置是有效的,但在某些情况下不会。自从你们上一篇文章以来,你们有没有发现任何关于这方面的新信息?没有新的信息,除了我现在在一个稍微不同的场景中经历的情况。我遇到了一个问题,设置SKSpriteNode的位置再次被忽略。这是在将世界节点引入到场景中以使场景在节点上居中后发生的。我发现,只有在我将节点添加到世界之后设置物理体,才能使该位置正常工作,而不是在添加节点之前。