GetHitKeyStateAll 関数が動作しない?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
dic
記事: 579
登録日時: 9年前
住所: 宮崎県

GetHitKeyStateAll 関数が動作しない?

#1

投稿記事 by dic » 8年前

ちょくちょく使わせてもらってます
今度はタイトルのとおり GetHitKeyStateAll2 関数が動作しません(?)

下はソースコードです

コード:

{
	//	入力制御
	char	key[256];
	GetHitKeyStateAll2( key );
	if( key[KEY_INPUT_DOWN] == 1 )
		m_select += 1;
	if( key[KEY_INPUT_UP] == 1 )
		m_select -= 1;
	if( m_select < 0 )
		m_select = 2;
	if( m_select > 2 )
		m_select = 0;
}

//================================================================
void	GetHitKeyStateAll2( char *key )
{
    static  char    key_count[256]; //  カウントアップ用変数
 
    memset( key, 0, sizeof(char[256]) );
    GetHitKeyStateAll( key );
 
    int i;
    for( i=0; i<256; i++ )
    {
        if( key[i] > 0 )
            key_count[i]++;
        else
            key_count[i] = 0;
    }
 
    //  代入する
    for( i=0; i<256; i++ )
        key[i] = key_count[i];
}

ここで、キーボードの上、下キーを押しても
6,8行目の m_select += 1; m_select -= 1;
のところに処理が流れません

また、簡単なところでつまづいているような気がします
どこらへんでつまづいているのでしょうか?
情報が不足していたら追加します

アバター
Ciel
記事: 252
登録日時: 9年前

Re: GetHitKeyStateAll 関数が動作しない?

#2

投稿記事 by Ciel » 8年前

コード:

for( i=0; i<256; i++ )
        key[i] = key_count[i];
↑この処理は必要あるんですか?
oui C'est la Vie♪

アバター
みけCAT
記事: 6235
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: GetHitKeyStateAll 関数が動作しない?

#3

投稿記事 by みけCAT » 8年前

必要ではないかと思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

dic
記事: 579
登録日時: 9年前
住所: 宮崎県

Re: GetHitKeyStateAll 関数が動作しない?

#4

投稿記事 by dic » 8年前

>>Cielさん
>>みけCATさん
返答ありがとうございます

色々調べたとこと、GetHitKeyStateAll2 を1フレームで2回以上呼び出していてて、
それで、1フレームで カウントが2回されていてて key[..] == 1 になっていないことが分かりました
なので、char key[256] 変数をグローバル化し、1フレームで、GethitKeyStateAll2 関数は
一回のみコールするということで問題が解決できました

閉鎖

“C言語何でも質問掲示板” へ戻る