![]()
我的场景节点树是这样的:
Scene|- World |- Camera node |- Game nodes with physics bodys
我的问题是,在游戏过程中,我动态地创建了新的关节(主要是固定关节).在这一点上,世界节点的位置与起始位置不同(例如:开始时(0,0),游戏过程中(1000,500))
现在,固定关节的锚点不在我想要的位置,它在现场的某个地方.
我假设场景的坐标系与物理引擎的坐标系不同.
对于锚点,我使用以下转换:
[world.scene convertPoint:node.position fromNode:node.parent];
我想将锚点设置在“节点”的位置.
移动世界节点后,锚点的计算不再运行.
谢谢你的帮助!
Greetz – Nekro
更新:
播放器上的中心场景的代码
- (voID)centerOnNode:(SKNode*)node { CGPoint camerapositionInScene = [node.scene convertPoint:node.position fromNode:node.parent]; node.parent.position = CGPointMake(node.parent.position.x - camerapositionInScene.x,node.parent.position.y - camerapositionInScene.y);}解决方法 使用SpriteKit物理接口有两个要求: >定义世界(场景)空间中的关节.
>不要动摇世界.
从你的问题和意见中,听起来你已经#1对了:当关节不在场景的直接孩子的节点之间时,您需要将坐标转换为场景空间,然后再使用它们来定义关节.
但是,当您尝试移动根坐标系时,SpriteKit物理学不会很好地处理它.所以,通过移动世界来实施“摄像机”会导致关节的麻烦.代替:
>如果您只能针对iOS 9.0 / OS X 10.11 / tvOS 9.0及更高版本,请使用SKCameraNode而不是移动世界.这也比较容易
(如果您想知道是否只支持iOS 9,请查看adoption rate statistics,并将其与您的开发计划进行比较…如果您不运送一段时间,iOS 9可能是“-1” *** 作系统版本,记住,热心客户和早期采用者之间存在很高的相关性.)>如果您仍然支持iOS 8 / OS X 10.10,请尝试为您的场景添加一个额外的图层:通过移动作为场景的孩子的节点和所有游戏内容的父母来伪造相机.
总结以上是内存溢出为你收集整理的ios – SpriteKit物理接触对于移动场景的破坏全部内容,希望文章能够帮你解决ios – SpriteKit物理接触对于移动场景的破坏所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)