ゲームで必ず用意する必要がある処理の1つです。入力は入力デバイスが「押された」「押されてない」の判断をします。入力デバイス入力は外部の入力デバイスの情報を取得します。「マウス」「液晶(スマホ)」などです。中でも最低限ライブラリ(ゲームエンジン)に必要な処理として次の3つの処理があげられます。各デバイスによって取得処理が増えることがあります。ゲームを作成する場合に入力デバイスから入力されたかどうかを取得する方法はDirectInputやXInputなどのゲームライブラリが提供してくれている機能を使って行います。ライブラリのサポートでは「どのキー(ボタン)が押されたか否か」しか判断してくれないことが多いです。「キーを押しているか否かの判定」という処理は簡単にできますが、その他の「キーを押した瞬間の判定」や「キーを離した瞬間の判定」は自分で実装します。今回のサンプルを含めた入力の説明は最も簡単とされている方法で実装します。それは各キーの状態を保存しておくという方法です。定数はdefineやconstではなく、enumで定義されてることが多いです。離された瞬間};キーの割り当て各ライブラリではキーボードの各キーの情報は定数で用意されていますがゲームではそのキー情報の定数をそのまま使うのではなく、まずはゲームで使用するキーの種類のenumを用意します。KEY_INFO{UP_KEY,DOWN_KEY,LEFT_KEY,RIHGT_KEY,MAX_KEY_INFO,};そして、このenumの順番とリンクした、ライブラリ側のキーの定数の配列を用意します。={DIK_UP,DIK_DOWN,DIK_LEFT,DIK_RIGHT,};ゲーム中では、KEY_INFOを使用してキーの情報を取得します。することで、割り当てているキーを変更したとしてもキーを取得している部分のコードの変更する必要がなくなります。キー状態を保存する変数の配列を用意キー状態の宣言とキーの割り当てが終わったら、この二つの情報を使用して、キー状態変数の配列を用意します。この配列内の各状態を毎フレーム変更することでキーの状態を確認できるようにします。毎フレーム実行して、最新の入力情報を取得します。この取得した情報を現在の入力状態と照らし合わせて状態を更新します。「キーを押した瞬間」状態に設定する条件は以下の通りです。「キーを押している」状態に設定する条件は以下の通りです。「キーを離した瞬間」状態に設定する条件は以下の通りです。押していない状態にする条件は、今まで上で書いていた条件に当てはまらない「全て」となるので条件分岐で「else」を用意し、状態を「押されていない」に変更すれば、押してない状態の対応は終了です。一応変更の条件を書いておくと以下の通りです。判定処理は簡単で、各状態を判定する関数を用意します。この関数の引数に判定したいキーを指定し、関数内で状態の値をチェックして判定したい状態(押された瞬間、押されている等)だったらtrue、そうではなかったらfalseを返します。INPUT_STATE::PUSH_EXIT);}探している内容が見つからなかったら以下のサイトにあるかもしれません。筆者が開発にかかわらせてもらったアプリのリンクです。