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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0809
大富豪Aウィンドウ内のスワイプ処理3解決


大富豪A

リンク

2012/8/9(Thu) 22:43:21|NO.48380

ウィンドウ内でスワイプすることは出来ましたが、処理をストップすることが出来ません。
たとえば、スワイプして上下左右に100ピクセル動いたら、ストップ。とゆう処理はどのように
すればいいですか?


onclick *click stop *click if iparam=0{ sy=mousey repeat if mousey!sy:title "動いた" await 1 loop }



この記事に返信する


てれてれ

リンク

2012/8/10(Fri) 01:19:58|NO.48385

うーん・・・絶対にとは言わないけどスワイプ処理にはonclickは向いてないような・・・

マウスカーソルが移動する度に座標をちょこちょこ足していって、
それが100を超えたら云々・・・って処理が1番簡単じゃないでしょうかね。


#module //2点(x1,x2)(y1,y2)間の距離を計算 #deffunc CalcDist int x1, int y1, int x2, int y2 Distance = 0.0 if x1 != x2 : Distance + powf( abs(x1-x2),2 ) if y1 != y2 : Distance + powf( abs(y1-y2),2 ) return int( sqrt(Distance) ) //移動距離を整数型で返す #global repeat getkey Click,1 if Click = 1{ if Click_stat = 0{ Click_stat = 1 SetPosition = mousex,mousey //距離の計算に使用する座標を記録 } if Click_stat = 1{ CalcDist mousex,mousey,SetPosition(0),SetPosition(1) DistCount + stat if DistCount >= 100{ //移動距離の合計が100ピクセルを超えたら・・・ mes "100ピクセル動いたよー" Click_stat = 2 DistCount = 0 } line mousex,mousey,SetPosition(0),SetPosition(1) SetPosition = mousex,mousey //距離の計算に使用する座標を記録 } }else : Click_stat = 0 : DistCount = 0 await 10 loop



k5342

リンク

2012/8/10(Fri) 10:02:32|NO.48388

>>スワイプして上下左右に100ピクセル動いたら

ここの意図があまりよみとれませんでしたが、直線であれば三平方の定理で比較的簡単にできると思いますよ。



repeat getkey Click,1 redraw 0 color 255,255,255 boxf pos 0,0 color 0,0,0 font"verdana",20 if Click=1{ if click_start=0{ click_start=1 position=mousex,mousey } /* * 三平方の定理( a^2 + b^2 = c^2 )をつかってみる */ mes (position(0)-mousex)*(position(0)-mousex) //a^2 mes (position(1)-mousey)*(position(1)-mousey) //b^2 mes 100*100 //c^2 if (position(0)-mousex)*(position(0)-mousex)+(position(1)-mousey)*(position(1)-mousey)>=100*100{ //100以上のスワイプが発生 color 255,0,0 mes "100!!!" } color 0,0,255 line position(0),position(1),mousex,mousey color 80,80,80 line position(0),position(1),position(0),mousey line position(0),mousey,mousex,mousey }else{ click_start=0 } redraw 1 await 10 loop

(たぶん...あってるかな...? 違ったらごめんなさい)



大富豪A

リンク

2012/8/10(Fri) 12:07:21|NO.48392

ありがとうございます。解決しました!



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