はじめまして 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は選択されたメニュー番号により よびだす関数を指定させるためにあります
わかりにくいかと思いますが ご教示お願いいたします
上記の件 自己解決しました。
スレッドよごし失礼しました・