ページ 11

GetHitKeyStateAll関数がわかりません

Posted: 2013年3月04日(月) 19:30
by でこ
codeタグを直しておきました。 プレビューで必ず確認して下さい。 by softya(ソフト屋)

コード:

int Key[256]; // キーが押されているフレーム数を格納する

// キーの入力状態を更新する
int gpUpdateKey(){
	char tmpKey[256]; // 現在のキーの入力状態を格納する
	GetHitKeyStateAll( tmpKey ); // 全てのキーの入力状態を得る
	for( int i=0; i<256; i++ ){ 
		if( tmpKey[i] != 0 ){ // i番のキーコードに対応するキーが押されていたら
			Key[i]++;     // 加算
		} else {              // 押されていなければ
			Key[i] = 0;   // 0にする
		}
	}
	return 0;
}

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
        ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定

        int x=320, y=240;
        int Handle = LoadGraph("画像/キャラクタ01.png");

        // while(裏画面を表画面に反映, メッセージ処理, 画面クリア, キーの更新)
        while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && gpUpdateKey()==0 ){

                if( Key[ KEY_INPUT_RIGHT ] ){ // 右キーが押されていたら
			x++;                       // 右へ移動
                }

		DrawRotaGraph( x, 200, 1.0, 0.0, Handle, TRUE ); // x,y の位置にキャラを描画

	}

	DxLib_End(); // DXライブラリ終了処理
	return 0;
}
このプログラムで教えて欲しいんですが右キーを押してGetHitKeyStateAllに何が入るんでしょうか?
KEY_INPUT_RIGHT が入るんでしょうか?1が入るんでしょうか?
全くわかりません。。
教えてください!お願いしますm(_ _)m

Re: GetHitKeyStateAll関数がわかりません

Posted: 2013年3月04日(月) 19:34
by みけCAT
GetHitKeyStateAll関数が成功なら0、エラーなら-1が入ります。

Re: GetHitKeyStateAll関数がわかりません

Posted: 2013年3月04日(月) 21:12
by softya(ソフト屋)
ここの解説を読まれましたか?
「DXライブラリ置き場 リファレンスページ GetHitKeyStateAll」
http://homepage2.nifty.com/natupaji/DxL ... html#R5N28
引数や戻り値の仕組みは理解出来ますでしょうか。※ ポインタを理解している必要があります。
何処らへんから解説すべきなのか、理解度を教えて下さい。