;-------------------------------------------- ; 開始 ;-------------------------------------------- #include "hsp3dish.as" #const KEY_LEFT_CLICK 1 setcls 1, $000000 color 255, 255, 255 *main redraw 0 tap = 0 getkey tap, KEY_LEFT_CLICK pos 0, 0 : mes str(tap) redraw 1 await 16 goto *main ;-------------------------------------------- ; 終わり ;--------------------------------------------
このソース内容は、ウィンドウ内をマウスで左クリックしている間ウィンドウの左上の位置に「1」が表示されるようになっています。
実際に実行してみると、確かにウィンドウ内を左クリックしている間は画面上に「1」が表示されます。
一見全く問題の無いようなソースですが、画面タッチが可能なWindowsタブレットPC等でこのソースを実行し、左クリックの代わりに画面をタッチすると何が問題なのかが分かります。
実は画面タッチ可能なWindowsタブレットPC等でこのソースを実行すると、画面をタッチしても画面上に「1」は表示されません。
もう少し詳しく書きますと、「getkey」命令の箇所で「1」ではなく「0」が返ってきます。
表示される答えとしては「画面をダブルタップ」すると画面上に「1」が表示されます。
つまり、ダブルタップをしないと「getkey」命令の箇所でクリックと判定されないのです。
これは「stick」命令についても同様です。
これがHSP3Dish上の仕様なのか不具合なのかはわかりませんが、Androidアプリを想定してプログラム作るのであれば、マルチタッチに対応している「mtlist / mtinfo」を使うように心がけましょう。
0 件のコメント:
コメントを投稿