HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0320
covent矩形をドラッグで移動するプログラムについて2解決


covent

リンク

2011/3/20(Sun) 16:52:56|NO.37718

矩形をドラッグで移動するプログラムを組みました。

di_tex_xf=100 di_tex_yf=100 repeat color 0,0,0 :boxf di_tex_x,di_tex_y,di_tex_xf,di_tex_yf getkey mousel,1 if mousel=1& mousex>=di_tex_x&mousey>=di_tex_y&mousex<=di_tex_xf&mousey<=di_tex_yf :gosub *di_tex_go await 1 loop *di_tex_go repeat redraw 0 color 255,255,255 boxf color 0,0,0 boxf di_tex_x,di_tex_y,di_tex_xf,di_tex_yf di_tex_x=mousex di_tex_y=mousey di_tex_xf=mousex+100 di_tex_yf=mousey+100 redraw 1 getkey mousel,1 if mousel=0 :break await 0 loop return
このプログラムだと、矩形をクリックしたら矩形の左上がマウスの位置に移動すると思います。
こうではなく、矩形をクリックしたらその位置から矩形を移動できるようにするにはどのようにすればいいのでしょうか?



この記事に返信する


Him

リンク

2011/3/20(Sun) 17:19:41|NO.37719

クリックした時の位置を取得すれば良いのではないでしょうか?

di_tex_xf=100 di_tex_yf=100 repeat color 0,0,0 :boxf di_tex_x,di_tex_y,di_tex_xf,di_tex_yf getkey mousel,1 if mousel=1& mousex>=di_tex_x&mousey>=di_tex_y&mousex<=di_tex_xf&mousey<=di_tex_yf :gosub *di_tex_go await 1 loop *di_tex_go chk_x = di_tex_x - mousex chk_y = di_tex_y - mousey repeat redraw 0 color 255,255,255 boxf color 0,0,0 boxf di_tex_x,di_tex_y,di_tex_xf,di_tex_yf di_tex_x=mousex+chk_x di_tex_y=mousey+chk_y di_tex_xf=mousex+100+chk_x di_tex_yf=mousey+100+chk_y redraw 1 getkey mousel,1 if mousel=0 :break await 0 loop return



covent

リンク

2011/3/20(Sun) 17:36:43|NO.37720

なるほど
このようにすればよかったのですね。
ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.