試してみたところボタンの上にカーソルが来たとき、
リピートは止まっていませんが、mousex、mouseyの数値が動いていませんね。
仕様なのかな…w
こういうときは別の方法を考えてみましょう。
方法を2つほど考えました。
まずはウィンドウ上ではなく画面上のカーソル座標から求める方法です。
//画面のカーソル座標-ウィンドウ座標で位置を求める場合
objsize 100,50
pos 100,100
button "終了",*hata1
repeat
x = ginfo_mx
y = ginfo_my
x2 = ginfo_wx1
y2 = ginfo_wy1
x-x2+10 ;ウィンドウx座標
y-y2+20 ;ウィンドウy座標
redraw 0
color 255,255,255 : boxf : color 0,0,0
pos 0,0
mes "mousex = "+x
mes "mousey = "+y
pos x,y : mes "ABC"
redraw 1
await 1
loop
stop
*hata1
end
この場合ボタンの上を通過しても大丈夫なようです。
ボタンの上に文字を表示させるのは無理ですがw
もうひとつはボタンを作る方法です。
//buttonの代わりにboxfを使うとか
blx = 200;左x
bly = 100;左y
brx = 300;右x
bry = 150;右y
onclick gosub *hata1
objsize 100,50
pos 50,100 : button "終了",*test
repeat
y = mousey
x = mousex
redraw 0
color 255,255,255 : boxf : color 0,0,0
color 250,150,150 : boxf 0,0,150,20 : color 0,0,0
//boxfボタン
color 200,200,200 : boxf blx,bly,brx,bry : color 0,0,0
pos blx+35,bly+15 : mes "終了"
//
pos x,y : mes "ABC"
pos 0,0 : mes "repeat回数 "+cnt
pos 0,30 : mes "mousex = "+x : pos 150,30 : mes "mousey = "+y
redraw 1
await 1
loop
stop
*hata1
if (x>200)&(x<300)&(y>100)&(y<150) : goto *test
return
*test
end
こんな感じですかね…