Luaridaセンサ編 (1)
Androidには各種センサが搭載されています。現在、Luaridaではタッチセンサのみ取得できます。これが取得できないとAndroidは使えませんね。タッチコマンドの説明をします。
touch( [タッチ取得] )
画面タッチ状態を取得します。
タッチ取得
0/省略:
タッチされた(X,Y)座標とタッチの状態を即時に返します。タッチされていない場合は、最後にタッチされた座標が返ります。
1: タッチダウンもしくはタッチ状態になるまで待ち、その状態になると(X,Y)座標を返します。
2: タッチアップもしくは離れている状態になる待て待ち、その状態になると(X,Y)座標を返します。
3: タッチアップ状態からタッチして、さらに指が離れた状態になるまで待ち、その状態になると(X,Y)座標を返します。
戻り値1
タッチしたX座標
戻り値2
タッチしたY座標
戻り値3
タッチの状態
0: ACTION_DOWN タッチ押下
1: ACTION_UP 指を持ち上げている
2: ACTION_MOVE 指を持ち上げずにスライドさせている
3: ACTION_CANCEL UP+DOWNの同時発生(=キャンセル)
4: ACTION_OUTSIDE ターゲットとするUIの範囲外を押下
例.
x,y,a = touch(1)
タッチダウンされたときに値が返ってきます。
----------------------------------------- --画面タッチサンプル ------------------------------------------ function touchsample() local x,y,a local c,d canvas.drawCls( color(255,255,255) ) x,y = canvas.getviewSize() dialog("画面サイズ","有効画面サイズは X= "..x.." Y= "..y.."です", 1 ) c = 0 d = 0 canvas.drawTextCenter( "画面タッチ位置を取得します", x/2,16, 32, color(0,0,0),color(0,255,255) ) while(true)do x,y,a = touch(1) canvas.drawText( "X="..x..",Y="..y..",Status="..a, 0,60, 26, color(0,0,0), color(255,255,255) ) c = c + 1 if( c>=20*(d+1) )then toast("タッチの読み取り回数が "..c.."を超えました", 0 ) d = d + 1 if( c>=100 )then break end end end end function main() local a while( true )do touchsample() a = dialog("画面タッチサンプル","終了してもいいですか", 2 ) if( a==1 )then break end end end main()