Web*_*ode 6 objective-c game-physics ios sprite-kit
我有一个在scree周围弹跳的球,就像乒乓球一样.
球的半径取决于屏幕的大小.
我发现在iPhone和iPad上球的速度并不相同.
因为iPad上的球更大,所以它更大ball.physicsBody.mass.
问题
如何正确解决这个问题?
我找到了两种方法:
首先是:SpriteKit iPhone/iPad的分辨率不同,需要同样的物理变化SKPhysicsWorld.第二是:SpriteKit球速大小与mass球的固定不同.
我认为固定mass球是正确的方法.
我对么 ?
我使用这种方法的应用程序可以在以下位置看到:
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);
}
Run Code Online (Sandbox Code Playgroud)
所以每次当我改变球的速度时,我都会使用这个normalizeForHeight(20),20只是我选择的一些常数。
| 归档时间: |
|
| 查看次数: |
567 次 |
| 最近记录: |