ページ 11

GetMouseInputについて

Posted: 2012年10月29日(月) 10:36
by AKIЯA
DXライブラリを使用してゲームのメニュー画面を製作しています。
製作したメニュー画面でメニュー項目が5項目あり1つをクリックして選択させると
また新たにメニューを表示させています。
(親と子のメニューの表示位置は同一の座標に表示しています)

親 子
menu1 → menu5
menu2 menu6
menu3  menu7
menu4 menu8
EXIT BACK

親のmenu1をクリックして子のメニューを表示をします。
そこで子のメニューからBACKをクリックすると親画面へ戻るのですが
BACKを押すと親画面へ戻りそのままEXITまで処理していることが起きました。
(タイミング次第で親画面がきちんと表示される時もあればEXITまでクリックした判定を受けてしまっています)

今のマウスクリック判定はDXライブラリのサンプルにありました以下のIF文を使用してます。

コード:

if((GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 )
{
     // クリックされた時の処理
}
MOUSE_INPUT_LEFTはWin32で言うところのWM_LBUTTONDOWNで、これをマウスの左ボタンが離された時のWM_MBUTTONDBLCLKと
同様の処理と同じイベントはDXライブラリにはあるのでしょうか?
または他に良い解決策がありましたらご教授願います。

Re: GetMouseInputについて

Posted: 2012年10月29日(月) 10:44
by AKIЯA
WM_MBUTTONDBLCLKではなくWM_LBUTTONUPでした^^;
マウス入力判定だけWin32で実装しないとできないのだろうか

Re: GetMouseInputについて

Posted: 2012年10月29日(月) 10:58
by softya(ソフト屋)
伝統的にゲームは自分で毎フレーム監視してキー押下やマウスクリック開始を検知します。
下記のキーボードでやっていることをマウスで行えば誤クリックはなくなると思います。

「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]」
http://dixq.net/g/02_09.html

Re: GetMouseInputについて

Posted: 2012年10月29日(月) 11:08
by AKIЯA
softyaさん
 なるほど、フレーム管理ですか

今回はマウスクリックなのでWM_LBUTTONUPっぽい処理を考えていましたが
調べたら似たような質問を発見して解決できました。

http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=1196

ありがとうございました。