- 締切済み
HSPの初歩的な質問
HSPで作成した画像付きボタンにポインタを合わせるとそれに反応しボタンの画像が変わりかつ音がでるようにしたいのですがどういうスクリプトを組めばよいかわかりません^^;よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ikakuitee
- ベストアンサー率0% (0/0)
mousexとmouseyを使って。あたり判定を作ります。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #define GAZOUX 0 #define GAZOUY 0 ;画像の位置 #define OTOS 5 ;音を出す #define WIDE 200 #define HEIGHT 300 ;画像の大きさ(大きさが違うなら個別に作ってください) #define PICTURE1 2 #define PICTURE2 3 ;わかりやすいように定義 mmload "oto.wav",OTOS ;音読み込み buffer PICTURE1,WIDE,HEIGHT picload "pic1.bmp",1 buffer PICTURE2,WIDE,HEIGHT picload "pic2.bmp",1;それぞれの画像読み込み pictureflag=0 ;どちらの絵が表示されてるか screen 0,700,700 ;ウィンドウ初期化 *main ;メイン redraw 0 ;ちらつき防止 pos GAZOUX,GAZOUY if pictureflag=0:gcopy PICTURE1,0,0,WIDE,HEIGHT if pictureflag=1:gcopy PICTURE2,0,0,WIDE,HEIGHT if mousex>GAZOUX&&mousex<GAZOUX+WIDE&&;実際は一行 mousey>GAZOUY&&mousey<GAZOUY+HEIGHT{ if pictureflag=0:mmplay OTOS:pictureflag=1 goto *mousein } ;ココにくる→マウスは範囲外にある pictureflag=0 mmstop *mousein redraw 1 await 50 goto *main ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ と。どうでしょうか。 エラー等があったらご連絡ください。
- umimon
- ベストアンサー率28% (11/38)
よくわからないかもしれませんが、 llmod3.hspを利用すると楽だと思いますが、 画像付きボタンのオブジェクトハンドルを取得し、 そのハンドルにプロシージャを割り当てることで実現できると思います。 HSPでやるとなると、かなり複雑になってしまうので、 オブジェクトを利用せずに、oncmd で #define global WM_LBUTTONDOWN 0x0201 //マウス左ボタンを押し下げ #define global WM_LBUTTONUP 0x0202 //マウス左ボタンを離した #define global WM_MOUSEMOVE 0x0200 //マウス移動時に実行 のメッセージを処理し、その中にカーソルがこの位置に来たら画像を変更するようにしておけば実現することもできます。以前、このような関数を自分で作ったことがあるのですが、HSP3.0になってから動作しなくなったので、 オリジナルで作ってみてはいかがでしょうか?