在「使用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