自分の質問は本当は直接DXライブラリを配布しているHPの掲示板にするべきものだと思いますが
ここのほうが質問しやすいのでまたまた来ました
DXライブラリを使ってグラフィックボタンを作りたいのですが
イマイチ作り方がわかりません
どうやって作るのか教えてください
ちなみに作っているのは○×問題です
押しボタンについて
Re:押しボタンについて
あらかじめ画像を作っておいて、LoadGraph関数とDrawGraph関数を使用して表示するやり方が1つ。
もう1つは、DrawLine、DrawBox、DrawCircle等の図形描画関数を使用して毎回書き替えるやり方でしょうか…
GetMouseInput関数でマウスの状態を調べ、クリックされた場合にGetMousePoint関数でマウスカーソルの位置を取得し、ボタンの範囲内にカーソルがあった場合、ボタンが押されたと判定する…とこんな感じで如何でしょうか?
もう1つは、DrawLine、DrawBox、DrawCircle等の図形描画関数を使用して毎回書き替えるやり方でしょうか…
GetMouseInput関数でマウスの状態を調べ、クリックされた場合にGetMousePoint関数でマウスカーソルの位置を取得し、ボタンの範囲内にカーソルがあった場合、ボタンが押されたと判定する…とこんな感じで如何でしょうか?
Re:押しボタンについて
・ボタンを押す処理が必要なのか
・今押したという瞬間の処理が必要なのか
・オンマウスの判定が必要なのか
今どの部分でつまっていらっしゃいますか?
特定の領域にボタンを表示させたら、例えば四角形を表示する関数
DrawBox(100,100,200,200,(略));
でボタンを作ったら、マウスがその領域(100,100)~(200,200)までの間にいるときボタンを押せば
プッシュ処理とすればいいでしょう。
「今押した」という処理は、前回の入力状態が0で、今回の入力状態が1の時のみ処理をすれば、
今の瞬間押した時のみ処理が出来ます。
画像でボタンを作るのなら指定座標+画像サイズで領域を判定すればいいでしょう。
・今押したという瞬間の処理が必要なのか
・オンマウスの判定が必要なのか
今どの部分でつまっていらっしゃいますか?
特定の領域にボタンを表示させたら、例えば四角形を表示する関数
DrawBox(100,100,200,200,(略));
でボタンを作ったら、マウスがその領域(100,100)~(200,200)までの間にいるときボタンを押せば
プッシュ処理とすればいいでしょう。
「今押した」という処理は、前回の入力状態が0で、今回の入力状態が1の時のみ処理をすれば、
今の瞬間押した時のみ処理が出来ます。
画像でボタンを作るのなら指定座標+画像サイズで領域を判定すればいいでしょう。
Re:押しボタンについて
自分が今詰まっているところは
・問題を表示(ここは画像関係ないですね・・・;)
・ボタン表示
・ボタンをオンマウスで画像を変更←この辺です
・クリックしたら回答が出てくる
・次の問題へ
こんな感じです
領域で処理・・・難しそうです
ムムム・・・面妖な・・・
上の方法でオンマウス状態のときに画像を変えるって言うのもできるんですか?
・問題を表示(ここは画像関係ないですね・・・;)
・ボタン表示
・ボタンをオンマウスで画像を変更←この辺です
・クリックしたら回答が出てくる
・次の問題へ
こんな感じです
領域で処理・・・難しそうです
ムムム・・・面妖な・・・
上の方法でオンマウス状態のときに画像を変えるって言うのもできるんですか?
Re:押しボタンについて
DXライブラリは始めたばかりですか?
それらは結構簡単ですよ^^
四角形を(100,100)の座標に50x50の大きさで書きましょう。と
言われたらかけますか?
マウスの今の座標を取得する関数がありますから、
http://homepage2.nifty.com/natupaji/DxL ... .html#R5N6
それを使えば今のマウスの座標がわかります。
例えばマウスの座標を
int x,y;
とすると、上記で書いた四角形にあるかどうかを判定するには
で判定させればいいことがわかります。
このイフ文にマッチする時には画像2を表示させ、それ以外の時は画像1を表示させればオンマウスで画像の変更が可能です。
どこかわからないですか?
それらは結構簡単ですよ^^
四角形を(100,100)の座標に50x50の大きさで書きましょう。と
言われたらかけますか?
マウスの今の座標を取得する関数がありますから、
http://homepage2.nifty.com/natupaji/DxL ... .html#R5N6
それを使えば今のマウスの座標がわかります。
例えばマウスの座標を
int x,y;
とすると、上記で書いた四角形にあるかどうかを判定するには
if(100<x && x<=150 && 100<y && y<=150){//x座標が100~150で、かつ、y座標が100~150
/*処理*/
}
で判定させればいいことがわかります。
このイフ文にマッチする時には画像2を表示させ、それ以外の時は画像1を表示させればオンマウスで画像の変更が可能です。
どこかわからないですか?