Sprite velocity/speed is varies on different devices

别来无恙 提交于 2019-12-25 09:08:05

问题


I am using the code below to move my sprite from one position to another.

let screenScale: CGFloat = UIScreen.mainScreen().scale

var travelSpeed: CGFloat = 20*screenScale
let displacement = CGVector(dx: destination.x-enemy!.sprite.position.x, dy: destination.y-enemy!.sprite.position.y)
let radius = sqrt(displacement.dx*displacement.dx+displacement.dy*displacement.dy)
let normal = CGVector(dx: displacement.dx/radius, dy: displacement.dy/radius)
let impulse = CGVector(dx: normal.dx*travelSpeed, dy: normal.dy*travelSpeed)
let relativeVelocity = CGVector(dx:impulse.dx-enemy!.sprite.physicsBody!.velocity.dx, dy:impulse.dy-enemy!.sprite.physicsBody!.velocity.dy);

enemy!.sprite.physicsBody!.velocity=CGVectorMake(enemy!.sprite.physicsBody!.velocity.dx+relativeVelocity.dx*rate, enemy!.sprite.physicsBody!.velocity.dy+relativeVelocity.dy*rate);

But when I tested it on my iPhone 6S Plus the sprite moved considerably faster than on my iPhone 5. I thought the line below caters for the different dimensions, since I am using the screen scale:

var travelSpeed: CGFloat = 20*screenScale

Or am I missing something?

来源:https://stackoverflow.com/questions/39234362/sprite-velocity-speed-is-varies-on-different-devices

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!