在“使用LibGDX开始Java游戏开发”一书中,作者制作了一个游戏,我想可以演示您想要的行为。游戏是第3章的“海星收藏家”。玩家移动一只乌龟来收集海星。左右箭头键旋转乌龟,向上箭头键使乌龟朝当前方向前进。
游戏的源代码可以从作者的Github账户here下载。 (我不知道他为什么把它放在一个zip文件)。
相关的代码如下所示:
@Override
public void update(float dt) {
// process input
turtle.setAccelerationXY(0, 0);
if (Gdx.input.isKeyPressed(Keys.LEFT)) {
turtle.rotateBy(90 * dt);
}
if (Gdx.input.isKeyPressed(Keys.RIGHT)) {
turtle.rotateBy(-90 * dt);
}
if (Gdx.input.isKeyPressed(Keys.UP)) {
turtle.accelerateForward(100);
}
// ...
凡turtle
延伸扩展Actor
一些自定义类。
为accelerateForward
的代码如下所示:
public void accelerateForward(float speed) {
setAccelerationAS(getRotation(), speed);
}
然后为setAccelerationAS
的代码如下所示:
// set acceleration from angle and speed
public void setAccelerationAS(float angleDeg, float speed) {
acceleration.x = speed * MathUtils.cosDeg(angleDeg);
acceleration.y = speed * MathUtils.sinDeg(angleDeg);
}
注意这个代码最后一位可能正是用户unexistential被指的是。
(我推荐这本书,如果你正在学习LibGDX与游戏的发展这是非常不错的。)
参见:
你想实现什么?在移动精灵的同时旋转它,或者先旋转精灵然后移动它? – Draz