HatenaPocket本稿ではJavaFXでゲーム制作するにおいて、自機を操作できるようにしてみましょう。サンプルは2Dシューティングを想定していますが、アクションだろうとRPGだろうと同じやり方で問題ありません。今回使用するサンプル画像はこれ。なんか城みたいになってますが、許してください。sample3.png目次1.キー操作で自機を上下左右に動かす2.より滑らかに移動させ、斜め移動にも対応する方法キー操作で自機を上下左右に動かすまずは、キー操作で自機を移動できる処理を実装してみましょう。キーイベントの実装方法はこちらの記事でも紹介しています。keyPressedイベントを処理し、上下左右キ―を押下したときにそれぞれ、x座標、y座標の値を変更するだけで移動できます。右に移動させたい場合はx座標を加算。左に移動させたい場合はx座標を減算。上に移動させたい場合はy座標を減算。下に移動させたい場合はy座標を加算。横移動させる場合はNodeオブジェクトのsetXメソッドかsetTranslateXメソッド利用します。縦移動させる場合はNodeオブジェクトのsetYメソッドかsetTranslateYメソッド利用します。それでは自機を移動させるサンプルをご覧ください。{//上下左右キーを押した時imgの座標を移動させる。先ほど紹介した方法だとどうしてもカクカク移動となってしまう上に斜め移動もできません。これを回避し、滑らかなアニメーションにするためには、キーが押された時の押されたフラグをONにしておき、離されたらOFFにするという処理を実行するのが良いです。フラグを保持するだけでは動かないので、こちらの記事でも紹介したAnimationTimerを使用し、ゲームループ上で移動処理を実装します。それではサンプルをご覧ください。{//上下左右キーを押した時フラグをONにする。{//上下左右キーを離した時フラグをOFFにする。false;break;default:break;}}}実行結果これでより滑らかなアニメーションとなり、斜め移動にも対応できました。【JavaFX:横スクロールアクションゲーム】キャラとブロック縦並び時の判定と壁に当たった時の特殊動作Ver1.00のブロック判定記事でやったことの続きを実装します。本稿はJavaFXでキー入力を検出する方法を確認しておきます。本稿はJavaFXでmp3、wavファイルを再生する方法を紹介します。コメントをキャンセルメールアドレスが公開されることはありません。当サイトのプライバシーポリシーについてはこちらからご参照いただけます。