SpriteKit scaling affects physics
我已经通过缩放包含游戏中所有对象的根"世界"节点来实现缩放。但是,随着世界节点的变小
是的,请不要缩放以进行缩放。尝试调整大小。
myScene.scaleMode = SKSceneScaleModeAspectFill;
然后在缩放时:
myScene.size = CGSizeMake(myScene.size.width + dx, myScene.size.height + dy);
* Apple文档说:
Set the scaleMode property to SKSceneScaleModeResizeFill. Sprite Kit automatically resizes the scene so that it always matches the view’s size.
- 我已经将缩放方法更改为缩放,但似乎物理仍在使用缩放方法。对于两个比例尺,当将力施加到SKNode时,我得到的速度非常不同。效果不及规模,但仍很明显。您知道为什么会这样吗?
-
您是说您将方法更改为RESIZING吗?因为您必须避免缩放。调整大小不应该以您描述的方式影响物理世界
-
并且您使用完全相同的物理属性和力,而不管缩放级别如何(不手动更改它们)?正确的?如前所述,调整场景大小不应该影响物理世界。另外,我自己在游戏中使用这种方法,因此看不到任何差异。即使在物理世界处于"实时"状态时也不会缩放。
-
找到解决方案了吗?如果没有,您可以尝试制作一个简单的代码示例来揭示问题并将其发布在这里?
-
是的,这确实解决了问题。您的游戏中是否有HUD?如果是这样,您是在单独的视图中显示它还是在缩放场景时还缩放HUD?
-
很高兴听到您将其修复-我只有一个视图和一个场景。 HUD和游戏世界是单独的节点或"层"。调整场景大小时,会相应缩放HUD。
-
哦,好酷。那也是我得到的解决方案,我只是认为这可能有点令人费解
-
我有一个定制的SKScene类,Node可以订阅该类以定期获取诸如update:和onPhysicsSimulated:等的调用。因此,我只是覆盖了场景setSize:方法,并调用了所有响应onSceneSizeChanged的订阅者: