トップページ > 過去ログ > 記事閲覧
はじめまして 質問させてください
名前:なおくん 日時: 2009/05/15 04:08

はじめまして DXライブラリを使用させていただいております なおくん というものです プログラムは初心者ですが DXライブラリを使用してゲームをつくりたいと 思っております オンラインゲームにする予定なのですが 基本的なことで教職ですが 質問させていただけたらと思います キー入力とマウスの座標の取得を同時に行うことは 可能でしょうか? 使用例としましては メニュー表示中に キーの入力とマウスの座標監視を行い マウスがメニューのどこにあるかで メニューの選択部分を変更する その上で ボタン入力があれば その入力されたボタンにより 選択されたメニューを実行する ということがやりたいのです 関係ありそうな部分のソースです while( ProcessMessage() == 0 ) { Smenu(); // キー入力待ち while( ProcessMessage() == 0 && CheckHitKeyAll() != 0 ){} while( ProcessMessage() == 0 && CheckHitKeyAll() == 0 ){} // キー入力に応じて処理 // カーソル移動 if(SelectF==1){ if( CheckHitKey( KEY_INPUT_UP ) != 0 && CMF != 1 ) CMF -- ; }else{ if( CheckHitKey( KEY_INPUT_UP ) != 0 && CMF != 3 ) CMF -- ; } if( CheckHitKey( KEY_INPUT_DOWN ) != 0 && CMF < 5 ) CMF ++ ; if( CheckHitKey( KEY_INPUT_RETURN ) != 0 ) { // 項目に応じた処理を行う Method2(CMF); // キー入力待ち WaitKey() ; } if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 ) { // 項目に応じた処理を行う Method2(CMF); // キー入力待ち WaitKey() ; } if(EnF==1){ // ループから抜ける break ; } } ここからSMENU関数のなかみの一部です void Smenu( void ) { // マウスの位置を取得 GetMousePoint( &MouseX , &MouseY ) ; if(MouseX>199 && MouseX<601) { if(MouseY>99 && MouseY<198 && SelectF==1) { CMF=1; } if(MouseY>199 && MouseY<298 && SelectF==1) { CMF=2; } if(MouseY>299 && MouseY<398) { CMF=3; } if(MouseY>399 && MouseY<498) { CMF=4; } if(MouseY>499 && MouseY<598) { CMF=5; } } 変数SelectFはINT型で呼び出せるメニューのフラグです 1が解除 1以外が制限です CMF はINT型で選択されているメニュー番号です EnF は終了フラグです 1ならPGの終了 それ以外なら継続です 関数Method2は選択されたメニュー番号により よびだす関数を指定させるためにあります わかりにくいかと思いますが ご教示お願いいたします 上記の件 自己解決しました。 スレッドよごし失礼しました・

Page: 1 |

Re: はじめまして 質問させてください ( No.1 )
名前:Will 日時:2009/05/15 13:03

使用例以下のソースは何がしたいのかさっぱりわからないので > キー入力とマウスの座標の取得を同時に行うことは 可能でしょうか? にのみ回答します。 ひとつの関数で両方得たいというのであればDXライブラリにはありませんので GetHitKeyStateAll( char *KeyStateBuf ); GetMousePoint( int *XBuf, int *YBuf ); この二つの関数を使って関数を自作してください。
Re: はじめまして 質問させてください ( No.2 )
名前:なおくん 日時:2009/05/16 23:42

Willさん レスありがとうございます GetMousePoint( int *XBuf, int *YBuf ); の関数について 勘違いをしていました 思い通り動くプログラムに変更できました ありがとうございました

Page: 1 |