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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
1201
春他人箱をドラックにあわせて動かす方法について3解決


春他人

リンク

2007/12/1(Sat) 11:30:34|NO.12674

マウスのドラックにあわせて箱を動かしたいのですが、うまく動きません。

sx=350:sy=200:bxs=20 redraw 0:cls bxx=rnd(sx-bxs):bxy=rnd(sy-bxs) color 0,0,0:boxf bxx,bxy,bxx+bxs,bxy+bxs:redraw 1 *chk6m wait 1 if ((abs(mousex-(bxx+bxs/2))<=bxs/2)&(abs(mousey-(bxy+bxs/2)))<=bxs/2)|(click=1){click=1:gosub *chk6d} goto *chk6m *chk6d stick m,0 if m&256:mbx=mousex-bxx:mby=mousey-bxy stick m,256 if m&256{ bxx=mousex-mbx:bxy=mousey-mby redraw 0:cls color 0,0,0:boxf bxx,bxy,bxx+bxs,bxy+bxs:redraw 1} return
頭のなかではこれで正しい気がするのですが…
今すぐでなくてもいいので誰か教えてください。



この記事に返信する


KENTA

リンク

2007/12/1(Sat) 11:59:34|NO.12675

これを参考にしてみてください。

px=100 py=100 siz=30 mx=0 my=0 *main redraw 0 color 255,255,255 :boxf stick sk,256 //左クリックされているか? if sk&256 { //箱の範囲内に入っているか? if mousex>=px & mousex<=px+siz & mousey>=py & mousey<=py+siz & drag=0{ //ドラッグされている drag=1 //ドラッグされた位置を取得 mx=mousex-px my=mousey-py } }else{ //マウスがクリックされていない drag=0 } if drag { //箱の位置をマウスに合わせて移動 px=mousex-mx py=mousey-my } color boxf px,py,px+siz,py+siz redraw await 0 goto *main



eller

リンク

2007/12/1(Sat) 12:05:06|NO.12676

こんにちは。
ちょっと遅かったみたいですが、一応私のものも投げておきます。
春他人さんのロジックに合うものを選んでいただければと思います。

あと注意点として、clsはループ内では使わない方が良いです。
画面を消去したいだけならばcolor&boxfを利用した方が良いでしょう。
// ドラッグサンプル
box_size = 50, 40 // 箱の大きさ(横, 縦) box_pos = 100, 100 // 箱の位置(横, 縦) drag = 0 // ドラッグ中かどうか *main stick keys if keys & 256 { // 左クリック開始 → もしマウスポインタが箱の上ならドラッグ開始 if box_pos(0) <= mousex & mousex < box_pos(0) + box_size(0) { if box_pos(1) <= mousey & mousey < box_pos(1) + box_size(1) { drag = 1 mouse_pos = mousex, mousey } } } else { getkey left_click, 1 if left_click { // 左クリック中 → 箱をドラッグしているなら箱を動かす if drag { box_pos(0) += mousex - mouse_pos(0) box_pos(1) += mousey - mouse_pos(1) mouse_pos = mousex, mousey } } else { // 左クリックしていない → ドラッグ終了 drag = 0 } } // 箱を描画 redraw 0 color 255, 255, 255 : boxf color : boxf box_pos(0), box_pos(1), box_pos(0) + box_size(0), box_pos(1) + box_size(1) redraw 1 wait 4 goto *main



春他人

リンク

2007/12/1(Sat) 12:13:25|NO.12677

ありがとうございます。
ドラッグ中かどうかにもフラグが必要ですか…
参考にさせていただきます。



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