ページ 11

マウス操作について

Posted: 2010年7月15日(木) 23:38
by gyt
今、DXライブラリを使ってプログラムを作っています。
そこで質問なのですが、マウスを左クリックしたときにその押された場所に図形を表示したいのですが一回クリックされたらその場所にずっと表示させることはできますか?
今作ったプログラムでは押し続けている場合のみ、そこに表示されます。
左クリックして離すと表示されなくなって、困ってます(><;)


↓のようなプログラムで指定した座標内で左クリックしたら赤い○を表示するように書いたつもりです。

MouseInput = GetMouseInput() ;
if( MouseX<=240&&MouseX>=120&&MouseY<=240&&MouseY>=120&&( MouseInput & MOUSE_INPUT_LEFT ) == 1 )
{

DrawString( 130 , 130 , "○" , circle_red);

}

ご指南お願いします(>人<)

Re:マウス操作について

Posted: 2010年7月16日(金) 00:11
by パコネコ
その時の座標を保存してみては?
あんまり多くなると無理ですが。

それかマス目を作っておくとか…ダメですか?

Re:マウス操作について

Posted: 2010年7月16日(金) 00:23
by 白い時空
こんな感じでどうですか?
MouseInput = GetMouseInput();
static int flag=0;
if( MouseX<=240&&MouseX>=120&&MouseY<=240&&MouseY>=120&&( MouseInput & MOUSE_INPUT_LEFT ) == 1 ){
        flag = 1;
}

if(flag==1){
        DrawString( 130 , 130 , "○" , circle_red);
}

Re:マウス操作について

Posted: 2010年7月16日(金) 00:26
by シエル
マウスが押されたらフラグを立てる。
フラグがたっているときだけ処理をするようにすればいいですよ。

Re:マウス操作について

Posted: 2010年7月16日(金) 16:36
by gyt
皆さんありがとうございました。
フラグを立てることで、解決しました(^^)ノ

ただパコネコさんの
>その時の座標を保存してみては?

>それかマス目を作っておくとか…

というのがよく意味が分からずにいます・・・orz
もし良かったらどういう意味か、またどのように考えればいいかなど、教えて欲しいです(><)
お願いします(-人-)

Re:マウス操作について

Posted: 2010年7月16日(金) 21:06
by パコネコ
どうやら私の勘違いだったようですが…
たとえば
>DrawString( 130 , 130 , "○" , circle_red);
これを
a=Mousex;
b=Mousey;
DrawString( a , b , "○" , circle_red);

こんな感じ…Mousexってマウスの座標であってました?

ボタンを押したときにaとbの値に代入見たいなのです。

マス目のほうは、配列でその配列の座標内でボタンが押されたらその配列の値を1にして
描写のときに1なら描写とすればできると思いました。

if(nannka[a]==1)DrawString( a , b , "○" , circle_red);

混乱させてしまってすいませんでした。

Re:マウス操作について

Posted: 2010年7月16日(金) 21:35
by gyt
なるほど!!
パコネコさん、丁寧に教えてくださりありがとうございます。

そういう考え方もできますね。
参考にさせてもらいます。

皆さん、丁寧な解説ありがとうございました。