今までclickposによる座標の取得を行ってきましたが、マウスジェスチャーというのはドラッグされている間はずっと方向を取得し続けるものです。なので、そのように書き換えます。以下サンプルスクリプト。
;value2000 *define mov %0,100 numalias x1,%0:inc %0 numalias y1,%0:inc %0 numalias x2,%0:inc %0 numalias y2,%0:inc %0 numalias dx,%0:inc %0 numalias dx_sign,%0:inc %0 numalias dy,%0:inc %0 numalias dy_sign,%0:inc %0 numalias temp,%0:inc %0 globalon mov %0,2000 numalias sensitivity,%0:inc %0 mov %sensitivity,10 defsub abs_sgn game *start btndef clear btndown 1 *loop caption "" btnwait2 %0 if %0 = 0 getmousepos %x1,%y1:goto *gesture goto *loop *gesture wait 5 isdown %temp if %temp != 1 goto *start getmousepos %x2,%y2 abs_sgn %x2 - %x1,%dx,%dx_sign abs_sgn %y2 - %y1,%dy,%dy_sign if %dx < %sensitivity && %dy < %sensitivity goto *gesture if %dx >= %dy && %dx_sign > 0 caption "右" if %dx >= %dy && %dx_sign < 0 caption "左" if %dx <= %dy && %dy_sign > 0 caption "下" if %dx <= %dy && %dy_sign < 0 caption "上" mov %x1,%x2 mov %y1,%y2 goto *gesture *abs_sgn getparam %0,i%1,i%2 mov %3,1 if %0 < 0 mov %3,-1 mov %%1,%0 * %3 mov %%2,%3 return 大きな変更点は「%sensitivityをグローバル変数にしたこと」と「clickposを廃止してgetmouseposで座標を取得するようにしたこと」です。これでかなりマウスジェスチャーっぽくなりましたね。 次は、ジェスチャーとアクション(セーブとかロードとか)を対応させてみます。 [2008年5月13日追記] 書こうと思っていたのにすっかり忘れていました。 btndownおよびisdownの使い方については、幻惑郷 : btndownとisdownに書いてあります。
by lyricist_m
| 2008-05-11 21:39
| NScripter
|
web拍手を送る
個人サイト
検索
カテゴリ
以前の記事
最新のトラックバック
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧
リンク
サークル関係
NightShifts k'のBlog NScripter関係 ■ Takahashi's Web ■ Binary Heaven NScripter Scripting Factory NScripter-Tips nscrplg NS栗 Withoutlimit 永字八法 貴史たま+MEのHP 君影草工房 ※以下、更新停止中 nscr SGP -Sphere Game Production 花鳥風月 牛小屋 |
ファン申請 |
||