ゲーム作りで学ぶ! 実践的C言語プログラミング > 第1部 DXライブラリの基礎 > 第4章 入力関係処理の基礎 > 特定のキーの入力状態の取得


[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

特定のキーの入力状態の取得 応援する 

特定のキーが押されているかを判定するには,CheckHitKey関数を利用します.

int CheckHitKey( int KeyCode );

KeyCodeには入力状態を取得したいキーコードを渡します(下表). 例えば,Aキーが押されているかを判定したい場合は, 表よりKeyCodeにKEY_INPUT_Aを渡してやればよいわけです. また,この関数はキーが押されている場合には1を,押されていない場合は0を 戻り値として返してきます.

では,Aキーが押されるまで処理を続けるプログラムを作成してみましょう.

foundation-13.cpp
#include "DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
                                   LPSTR lpCmdLine, int nCmdShow ) 
{
        int white;

        //ウィンドウモードで起動
        ChangeWindowMode( TRUE );
        //DXライブラリ初期化
        if( DxLib_Init() == -1 ) {
                return -1;
        }

        //白色取得
        white = GetColor( 255, 255, 255 );

        //Aキーが押されるまでプログラムを続行
        while( CheckHitKey( KEY_INPUT_A ) == 0 ) {
                if( ProcessMessage() == -1 ) {
                        break;
                }
                DrawString( 20, 20, "Aキーでプログラム終了", white );
        }

        //DXライブラリ終了処理
        DxLib_End();
        return 0;
}

このプログラムの実行結果は,下図となります.

キーコード キー キーコード キー
KEY_INPUT_BACK Backspace KEY_INPUT_RALT 右ALT
KEY_INPUT_TAB Tab KEY_INPUT_SCROLL ScrollLock
KEY_INPUT_RETURN Enter KEY_INPUT_SEMICOLON
KEY_INPUT_LSHIFT 左シフト KEY_INPUT_COLON
KEY_INPUT_RSHIFT 右シフト KEY_INPUT_LBRACKET
KEY_INPUT_LCONTROL 左コントロール KEY_INPUT_RBRACKET
KEY_INPUT_RCONTROL 右コントロール KEY_INPUT_AT
KEY_INPUT_ESCAPE Escape KEY_INPUT_BACKSLASH
KEY_INPUT_SPACE Space KEY_INPUT_COMMA
KEY_INPUT_PGUP PageUp KEY_INPUT_MULTIPLY テンキー*
KEY_INPUT_PGDN PageDown KEY_INPUT_ADD テンキー+
KEY_INPUT_END End KEY_INPUT_SUBTRACT テンキー-
KEY_INPUT_HOME Home KEY_INPUT_DECIMAL テンキー.
KEY_INPUT_LEFT KEY_INPUT_DIVIDE テンキー/
KEY_INPUT_UP KEY_INPUT_NUMPADENTER テンキーのEnter
KEY_INPUT_RIGHT KEY_INPUT_NUMPAD0 テンキー0
KEY_INPUT_DOWN ・・・
KEY_INPUT_INSERT Insert KEY_INPUT_NUMPAD9 テンキー9
KEY_INPUT_DELETE Delete KEY_INPUT_F1 F1キー
KEY_INPUT_MINUS - ・・・
KEY_INPUT_CAPSLOCK CaspLock KEY_INPUT_F12 F12キー
KEY_INPUT_PAUSE PauseBreak KEY_INPUT_A Aキー
KEY_INPUT_YEN ・・・
KEY_INPUT_PREVTRACK KEY_INPUT_Z Zキー
KEY_INPUT_PERIOD KEY_INPUT_0 0キー
KEY_INPUT_SLASH ・・・
KEY_INPUT_LALT 左ALT KEY_INPUT_9 9キー

[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

このサイトについて|ヘルプ|Q&A|個人情報保護|プライバシーポリシー|利用規約|コメント・トラックバック規約|削除規程|広告掲載
Copyright (c) 2005-2007 Time Intermedia Corporation