コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

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()