トップページ > 記事閲覧
キー入力について
名前:あんこうるわっと 日時: 2017/12/16 09:10

現在ゲームをつくってます。キーを押した瞬間だけ反応して、それからは、キーを放して再び押すまで反応しないというプログラムを作りたいのです。 作ったところキーを押し続けていても反応してしまいます。どうすればいいでしょう。 あと、こういう掲示板使うの初めてなので何か間違ってたらすみません。 void SelectGameState(GameState gamestate, int n) { char Buf[256]; GetHitKeyStateAll(Buf); static BOOL change_able = TRUE; if (Buf[n] == 1 && change_able == TRUE) { g_gamestate = gamestate; } ChangeAble(&change_able, n); } void ChangeAble(int *change_able, int n) { char Buf[256]; GetHitKeyStateAll(Buf); if (Buf[n] == 1) { *change_able = FALSE; } else { *change_able = TRUE; } }
メンテ

Page: 1 |

Re: キー入力について ( No.1 )
名前:管理人 日時:2017/12/16 23:58

プログラム全体を拝見してみないとなんとも言えませんが、Buf は 256個あるのに対して change_able が 1個しかないのが原因となっている気がします 以下のように change_able も 256個にしてみたらどうでしょうか? void SelectGameState(GameState gamestate, int n) { char Buf[256]; GetHitKeyStateAll(Buf); static BOOL change_able[256]; if (Buf[n] == 1 && change_able[n] == TRUE) { g_gamestate = gamestate; } ChangeAble(&change_able[n], n); }
メンテ
Re: キー入力について ( No.2 )
名前:あんこうるわっと[解決] 日時:2017/12/18 19:59

返信遅れてすみませんでした。言われたとおりにやったらうまくいきました。ありがとうございます。 void SelectGameState(GameState gamestate, int n) { char Buf[256]; GetHitKeyStateAll(Buf); static BOOL change_able[256]; if (Buf[n] == 1 && change_able[n] == TRUE) { g_gamestate = gamestate; } ChangeAble(change_able, n); } void ChangeAble(int change_able[], int n) { char Buf[256]; GetHitKeyStateAll(Buf); if (Buf[n] == 1) { change_able[n] = FALSE; } else { change_able[n] = TRUE; } }
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存