ゲームプログラミングの館の 33. 選択画面の作り方。 で
int GetHitKeyStateAll_2(int KeyStateBuf[/url]){
char GetHitKeyStateAll_Key[256];
GetHitKeyStateAll( GetHitKeyStateAll_Key );
for(int i=0;i<256;i++){
if(GetHitKeyStateAll_Key==1) KeyStateBuf++;
else KeyStateBuf=0;
}
return 0;
}
がいまいちわからないです 言葉で説明していただけませんか?
33. 選択画面の作り方。
Re:33. 選択画面の作り方。
int GetHitKeyStateAll_2(int KeyStateBuf[/url]){ char GetHitKeyStateAll_Key[256]; // 予備 GetHitKeyStateAll( GetHitKeyStateAll_Key ); // 元状態のキー状態を予備に保存(配列に入る数字は0 or 1) for(int i=0;i<256;i++) { if(GetHitKeyStateAll_Key==1) // 入力があればインクリメント KeyStateBuf++; else KeyStateBuf=0; } return 0; }
結局は、
「入力が0か1か」
ではなく、
「何フレーム間押されているか」
を監査しています。
こうする事によって、押された瞬間は[Key]=1 , 長押しは[Key]>40
などとすることができ、便利です。