【发布时间】:2015-11-15 15:48:08
【问题描述】:
我正在尝试制作一个游戏,其中精灵在被物体击中时总是会向右移动。然而,由于 Sprite 不断旋转并且零弧度随 Sprite 旋转,如果精灵面朝左并撞到对象,我计算的幅度会朝相反的方向移动。即使零向左,有没有办法保持幅度的方向始终指向右侧?
// referencePoint = upper right corner of the frame
let rightTriangleFinalPoint:CGPoint = CGPoint(x: referencePoint.x, y: theSprite.position.y)
let theSpriteToReferenceDistance = distanceBetweenCGPoints(theSprite.position, b: referencePoint)
let theSpriteToFinalPointDistance = distanceBetweenCGPoints(theSprite.position, b: rightTriangleFinalPoint)
let arcCosineValue = theSpriteToFinalPointDistance / theSpriteToReferenceDistance
let angle = Double(acos(arcCosineValue))
let xMagnitude = magnitude * cos(angle)
let yMagnitude = (magnitude * sin(angle)) / 1.5
【问题讨论】:
-
你是如何推动精灵的?是使用力、SKActions 还是其他方式?
-
我正在使用 applyImpulse 来移动 Sprite @Gliderman
标签: ios vector sprite-kit game-physics skphysicsbody