【发布时间】:2013-12-01 10:49:03
【问题描述】:
我的场景有一堆矩形,其物理实体与矩形大小相同。我喜欢将我的所有对象都锚定到 CGPointZero,但是我注意到当我这样做时,物理体仍然锚定在中间。换句话说,我的物理体的位置在视觉表示的左侧低 100 像素。
这是一个简单的sn-p代码:
SKSpriteNode* square = [SKSpriteNode spriteNodeWithColor:[SKColor blackColor] size:CGSizeMake(width, height)];
square.anchorPoint = CGPointZero; //position based on bottom-left corner
square.position = CGPointMake(x, y);
square.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(width, height)];
任何解决此问题的想法或建议将不胜感激。例如,如果我可以可视化物理物体,那可能会有所帮助,但我不知道该怎么做。
更新:所以我通过简单地不设置锚点并重新定位我的矩形来解决了这个问题。所以问题仍然存在,但我有一个解决方法,并且解决方法运行良好。
【问题讨论】:
-
这对于找到你的物理实体的实际位置很有用:stackoverflow.com/questions/20084968/…
-
AnchorPoint 围绕节点位置滑动纹理。锚点对物理形状/实体没有影响,因为它只定义了纹理相对于节点位置的偏移量。如果您希望您的形状更靠近角落,请将 anchorPoint 保留为默认值并相应地更改位置。更改 anchorPoint 也会对子节点的旋转和位置产生不利影响。
-
说改变锚点会对子节点的旋转和位置产生不利影响是幼稚的。也许我想在 0,0 上旋转。考虑到所有低级图形 API 都在左下角工作,而 Web 开发工作在右上角,我绝对想这样定位。在图形开发的宏伟计划中,从中心工作实际上是非常独特的。话虽如此,您的前两句话清晰正确。我想,我希望我能改变物理体锚点:\
标签: ios sprite-kit skphysicsbody