1
私は単純な戦闘ゲームのロジックを準備しています。アイデアはあなたがタンク(長方形)を持っているということです。 a
またはd
を押すと、w
またはs
を押しながら回転させます(正面または背面に移動)。回転した矩形を移動させながらジャンプする効果
if(keys[65] === true) {
gun.angle -= gun.speed;
}
if(keys[68] === true) {
gun.angle += gun.speed;
}
if(keys[87] === true) {
gun.x += gun.speed * Math.cos(radians(gun.angle));
gun.y += gun.speed * Math.sin(radians(gun.angle));
}
if(keys[83] === true) {
gun.x -= gun.speed * Math.cos(radians(gun.angle));
gun.y -= gun.speed * Math.sin(radians(gun.angle));
}
スクリプトはかなりうまく動作しますが、難しい問題が1つあります。タンクを回転させると問題はありませんが、上または下に移動するとジャンプ効果があります。
上に移動すると下に移動し、下に移動すると上に移動します。
これは、demo fiddleで簡単にテストできます。私は、移動の影響を受けるポイントがタンクのx
とy
であり、平行移動(回転)がタンクの中心点に基づいているという事実に関連していると考えられます。私はそれを修正する方法を知りません。
すべてのヘルプはいいだろう、アニメーション機能で)
美しい、解決:)ありがとう先生;) – Mevia