キー入力後動作をSwitchを使ってやるには?
Posted: 2011年9月19日(月) 10:28
ここ(http://www.plustarnet.com/aspil/Programming/c11.htm)の3つ目のサンプルコードの下で、
最初から全部判定していかなければなりません。つまり、無駄にCPUを使用することにもなりかねません。
と書かれています。まあ、これを鵜呑みにしたわけですが、
DXLibで、キー入力判定後の動作(例えばWを押したらキャラが前進するとか)をswitchを使って場合分けするにはどうしたらいいでしょうか?
こうではなく
GetHitKeyStateAll( KeyBuf )
if( KeyBuf[KEY_INPUT_W] == 1 )
{
前に進む処理
}
if( KeyBuf[KEY_INPUT_S] == 1 )
{
後ろに進む処理
}
if( KeyBuf[KEY_INPUT_A] == 1 )
{
左に進む処理
}
if( KeyBuf[KEY_INPUT_W] == 1 )
{
右に進む処理
}
こんな感じにしたいのです。
↓文法(switchに使えるのが整数のみ)という点では間違ってますがやりたいことは伝わるでしょうか?
switch(KeyBuf)
case W
前に進む処理
break:
以下略
なにかいい方法はないでしょうか?
最初から全部判定していかなければなりません。つまり、無駄にCPUを使用することにもなりかねません。
と書かれています。まあ、これを鵜呑みにしたわけですが、
DXLibで、キー入力判定後の動作(例えばWを押したらキャラが前進するとか)をswitchを使って場合分けするにはどうしたらいいでしょうか?
こうではなく
GetHitKeyStateAll( KeyBuf )
if( KeyBuf[KEY_INPUT_W] == 1 )
{
前に進む処理
}
if( KeyBuf[KEY_INPUT_S] == 1 )
{
後ろに進む処理
}
if( KeyBuf[KEY_INPUT_A] == 1 )
{
左に進む処理
}
if( KeyBuf[KEY_INPUT_W] == 1 )
{
右に進む処理
}
こんな感じにしたいのです。
↓文法(switchに使えるのが整数のみ)という点では間違ってますがやりたいことは伝わるでしょうか?
switch(KeyBuf)
case W
前に進む処理
break:
以下略
なにかいい方法はないでしょうか?