DXlibでボタンをつくりたいのですが、マウスカーソルをある範囲の座標に合わせたときの判定方法がわかりません。
if文を用いて作ったボタンの範囲の座標にあわせたときに判定させたいのですがどのようにif文をつくればいいでしょうか。
マウスの位置の取得やクリックの入力などはできています。
DXライブラリでマウスカーソルを使ってのボタン判定
- Dixq (管理人)
- 管理人
- 記事: 1661
- 登録日時: 13年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: DXライブラリでマウスカーソルを使ってのボタン判定
ゲームプログラミングの館のs.3章が参考になると思います。
s.3章 Androidのようなボタンの作り方(C++)
http://dixq.net/g/
ただなぜマウスの一の取得ができていて、ボタンとの当たり判定が計算できないのかわかりません。
具体的に今できているコードはどうなっていて、どこで分からないのでしょうか。
s.3章 Androidのようなボタンの作り方(C++)
http://dixq.net/g/
ただなぜマウスの一の取得ができていて、ボタンとの当たり判定が計算できないのかわかりません。
具体的に今できているコードはどうなっていて、どこで分からないのでしょうか。
Re: DXライブラリでマウスカーソルを使ってのボタン判定
int MouseX , MouseY ;
GetMousePoint( &MouseX , &MouseY ) ; // マウスの位置を取得
int sx,sy,gx,gy;
sx=100;
sy=100;
gx=200;
gy=200;
if(sx<MouseX && sy<MouseY && gx>MouseY && gy>MouseY)
{
// ここに処理を書く
}
多分、ボタンですとDrawRotaGraphなど中心を描画座標に指定する関数を使って拡大率を指定した方が良い気がします。
Re: DXライブラリでマウスカーソルを使ってのボタン判定
int MouseX , MouseY ;
int sx,sy,gx,gy;
int drawX,drawY,sizeX,sizeY;
int btnGraph=LoadGraph("ボタン画像パス");
GetMousePoint( &MouseX , &MouseY ) ; // マウスの位置を取得
GetGraphSize(btnGraph,&sizeX,&sizeY);
drawX=100;
drawY=100;
sx=drawX-sizeX/2;
sy=drawY-sizeY/2;
gx=drawX+sizeX/2;
gy=drawY+sizeY/2;
if(sx<MouseX && sy<MouseY && gx>MouseY && gy>MouseY)
{
// ここに処理を書く
}
DrawRotaGraph(drawX,drawY,1.0,0,btnGraph,TRUE,FALSE);
また、GetGraphSizeの幅もしくは高さの値が0だと2で割った時に止まるので注意しましょう。