プログラミングを勉強中の人のあれこれなブログ
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ただいまコメントを受けつけておりません。
暑くなってきました。
まだ5月なんですがね……。さておき前置きはこのぐらいにして今回はキー操作のアルゴリズム。
結構いろんなサイトを見てみると、
キー操作をウィンドウプロシージャで制御している方々が多いのですね。
私もそうするのかーと思っていたのですがあるとき先生(教えてもらっている人)に
「そこで管理する必要ないよ」
と言われて、じゃぁどうするの?という話をしていた時に教えてもらったのが以下のソース。
---------------------------------------------------------------
int Param = 0;
void keyControl()
{
if (GetAsyncKeyState(VK_SPACE) & 0x8000)
{
Param ++;
if (Param > 2)
{ Param = 2; }
}
else
{
if (Param == 2)
{ Param ++; }
if (Param == 3)
{ Param = 0; }
}
}
----------------------------------------------------------------
本当は、BOOLで制御するそうですが私にはよくわからないのでこのまま使用しております。
原理としては
1:入力を確認する
2:押されている間にカウントを+して行く。
3:カウントごとにIf分で制御する。
みたいな感じなのかしら。ちなみに使用するときは
if (Param == 1){ True };
みたいな感じです。
Param == 1:押された直後
Param == 2:押している間
Param == 3:離す時
Param == 0:何もしていない状態
というふうに場合分けしているのですね。
大掛かりなものになればなるほどプロシージャで管理するよりも
こちらで管理したほうがよいよいです。参考までにどうぞ。