Qt QML-如何将动画移动更改为面旋转方向?
我是个初学者,想写一个驾驶游戏。当按下转向按钮时,油箱向前移动并转向。 我能够使坦克朝着它所面对的方向移动。但是,如果移动动画播放时方向发生变化,我不知道如何使坦克移动动态变化,以使移动与朝向的方向保持一致 我目前的解决方案是为运动动画设置一个非常短的距离,以便在每个动画开始时,它能够根据任何旋转更改来更改方向 问题是,通过使用这种方法,我只能使运动动画的长度约为10像素,否则它会产生明显的横向运动。如果只移动10个像素,当我想让汽车快速移动时,这意味着每秒有很多动画。。。在高速行驶时,这会在我的坦克中产生闪烁效果 我相信一定有更好的方法。。。有人能帮忙吗?我复制了下面的代码示例,以说明我目前是如何做的 我会很感激任何答案,记住我是一个初学者-保持简单,我很愚蠢 多谢各位Qt QML-如何将动画移动更改为面旋转方向?,qt,animation,rotation,qml,Qt,Animation,Rotation,Qml,我是个初学者,想写一个驾驶游戏。当按下转向按钮时,油箱向前移动并转向。 我能够使坦克朝着它所面对的方向移动。但是,如果移动动画播放时方向发生变化,我不知道如何使坦克移动动态变化,以使移动与朝向的方向保持一致 我目前的解决方案是为运动动画设置一个非常短的距离,以便在每个动画开始时,它能够根据任何旋转更改来更改方向 问题是,通过使用这种方法,我只能使运动动画的长度约为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
}
}这可能是个话题,但是一些为2D物理指定的模块呢,比如or?如果您能制作一个简化的示例,我们可以实际运行,那就太好了。谢谢您的评论。。。我可能很快会尝试一个简单的例子。。。不过,我只是先尝试一下box2d的想法——我意识到无论如何我都可能需要它,因为我没有其他线索知道当我在游戏中走得那么远时,我将如何处理碰撞检测。