你可能知道在使用SpriteKit时,applyImpulse
在所有屏幕上的表现并不理想。
在上,我的球移动得非常快,但在上,球移动得非常慢。
有没有办法使这在所有屏幕上都相等,与屏幕宽度相比?
例如,假设我希望我的球在每个设备上在5秒内横穿屏幕,我该使用什么公式?
我已经测试了屏幕大小和时间之间的关系,以便使用applyImpulse
将球移动到屏幕边缘:
我该如何更改我的applyImpulse函数以适用于所有屏幕?(不包括为每个设备特别制作,因为我希望这对未来有可持续性)
如果可能,请展示一个小的swift函数,如果不能,请给我任何建议(链接到文档、论坛等)。
我感激任何人的帮助。
编辑:我的GameViewController.swift覆盖加载场景的代码:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
// Layout guides
guide = UIApplication.shared.keyWindow?.safeAreaInsets
if let view = self.view as! SKView? {
// Load scene
let scene = GameScene(size: view.frame.size)
// Set the scale mode to scale to fit the window
scene.scaleMode = .aspectFill
// Set (0, 0) as the centre of the screen
scene.anchorPoint = CGPoint(x: 0.5, y: 0.5)
// Present the scene
view.presentScene(scene)
view.ignoresSiblingOrder = true
view.showsFPS = true
view.showsNodeCount = true
view.showsPhysics = true
}
}
150点 == 1米
。 - Knight0fDragon.aspectFill
,并且我的加载场景的代码是let scene = GameScene(size: view.frame.size)
... 有趣的是,你之前已经评论了我很多问题。 - George.sks
文件。我希望对象能够适应大小。 - George