我的球在碎石板上弹跳,有点像乒乓球。
球的半径取决于屏幕的大小。
我发现球在 iPhone 和 iPad 上的运动速度不同。
因为球在 iPad 上更大,所以它有更大的 ball.physicsBody.mass
。
问题
如何正确解决这个问题?
我找到了两种方法:
首先是:SpriteKit iPhone/iPad different resolution, need same physics更改 SKPhysicsWorld
。
第二个是:SpriteKit ball speed differ on size修复球的质量
。
我认为固定球的质量
是正确的方法。
我对么 ?
最佳答案
可以在以下位置看到我使用这种方法的应用程序:
https://itunes.apple.com/us/app/pongfinity/id930801337
我做了以下事情:
我已经修复了:摩擦力、恢复力、线性阻尼和质量,球物理体的所有属性。
我用的是自己写的函数:
NSUInteger normalizeForHeight(NSUInteger number)
{
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenHeight = screenRect.size.height;
CGFloat factor = 1.0;
factor = screenHeight / 480;
return (number * factor);
}
所以每次当我改变球的速度时,我都会使用这个 normalizeForHeight(20)
,20 只是我选择的一些常数。
关于ios - 无论 iPad 和 iPhone 中对象的大小如何,SpriteKit 中的物理特性都相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24882405/