我是初学者,试图写一款驾驶游戏。它涉及一个坦克向前移动并在按下转动按钮时转动。 我能够使坦克朝着它面向的方向移动。但是如果移动动画正在播放时方向发生变化,我就不知道如何使坦克运动动态变化,以保持运动与朝向的方向一致。
我目前的解决方案是为移动动画设置一个非常短的距离,这样在每个动画开始时它都可以根据任何旋转变化改变方向。
这个问题是通过使用这种方法我只能使运动动画的长度大约为10个像素 - 否则会产生明显的侧向运动。只需将它移动10个像素,当我希望汽车快速移动时,它意味着每秒动画很多......在速度的高端,这会在我的坦克中产生闪烁效果。
我确定必须有更好的方法来做到这一点......任何人都可以帮忙吗?我已经复制了下面的代码示例,以说明我目前是如何做的。
我很感激任何回答,记住我是初学者 - 保持简单我是愚蠢的!
谢谢。
RotationAnimation {
id: tankTurnRightAnimator
running: false
target: tank
property: "rotation"
from: tank.rotation
to: rotation + 360
loops: Animation.Infinite
duration: 3600
}
ParallelAnimation{
id: tankMoveAnimation
NumberAnimation {
target: tank
property: "y"
to: y + ((tank.direction * pixelTravel) * Math.sin(tank.rotation * (Math.PI / 180)))
duration: tank.curSpeed
}
NumberAnimation {
target: tank
property: "x"
to: x + ((tank.direction * pixelTravel) * Math.cos(tank.rotation * (Math.PI /180)))
duration: tank.curSpeed
}
}