このキー入力システムは簡単に使うことができます。
先ず最初に初期化と解放の処理をメインループの前後などで呼び出します。
そしてメインループ内で更新処理を呼び出します。
- // 入力システムの初期化
- InitializeInput();
- // メインループ
- while( !IsQuitMessage() )
- {
- if( !UpdateWindowMessage() )
- {
- UpdateInput();
- // ゲーム処理
- }
- }
- // 入力システムの解放
- FinalizeInput();
これでキー入力システムが動作する環境は整いました。
次にキーバインドの設定を行います。
- // キーバインドの設定
- BindKey(EKeyBind::Up, 'W');
- BindKey(EKeyBind::Down, 'S');
- BindKey(EKeyBind::Left, 'A');
- BindKey(EKeyBind::Right, 'D');
キーバインドは入力システムが初期化した後であれば何処で設定しても問題ありません。
基本的にはゲームの初期化時がしっくりくるかなと思います。
今回は上下左右にWSADをバインドしています。
最後に実際に入力を判定して処理します。
- if( IsKeyPress(EKeyBind::Up) )
- {
- // 上に歩く
- }
- else if( IsKeyPress(EKeyBind::Down) )
- {
- // 下に歩く
- }
- if( IsKeyPress(EKeyBind::Left) )
- {
- // 左に歩く
- }
- else if( IsKeyPress(EKeyBind::Right) )
- {
- // 右に歩く
- }
例えば移動処理なんかはこうやって実装していく感じになるかと思います。
簡単ですよね!
ゲームを作る上でキー配置はかなり重要なポイントなので自由に変更して対応できるように考えた実装をしていきましょう。