構文 | touch( [タッチ条件] ) 戻り値: X座標,Y座標, タッチ状態 |
説明 | 画面タッチ座標と状態を取得します。ただし、取得座標はcanvas.setMainBmp()に設定された範囲の座標となります。未設定の場合は画面サイズと同じ値が取得されます。 |
引数 | touch命令は引数により、機能が変ります。 touch() 即座にX,Y座標とタッチの状態を返します。 touch(0) 即座にX,Y座標とタッチの状態を返します。 touch(1) タッチされるまで待機し、タッチしていればX,Y座標とタッチの状態を返します。 touch(2) 指が離れるまで待機し、離れていれば、X,Y座標とタッチの状態を返します。 touch(3) 指が離れている状態からタッチ、さらに指が離れるまで待機します。指が離れれば、X,Y座標とタッチの状態を返します。 |
戻り値 | touch命令は、戻り値を3つ持ちます。最終タッチX,Y座標と、画面タッチ状態が返ります。 下記にタッチ状態の値と意味を示します。 0: タッチしている 1: タッチしていない 2: タッチしてスライドしている 3: キャンセルされた 4: 範囲外にタッチしている 0と2の違いに注意してください。どちらもタッチしていますが、タッチした後指が少しでも動いた場合は、2が返ります。 |
------------------------------------------
-- 画面タッチ座標と状態を取得のサンプル touch_sample.lua
------------------------------------------
function main()
local x
local y
local mode
x = 0
y = 0
canvas.drawCls(color(255,255,255))
canvas.drawText("画面タッチ座標と状態を取得のサンプル", 0, 0, 24, color(0,0,0))
canvas.drawText("画面タッチ状態:", 0, 30, 24, color(0,0,0))
canvas.drawText("タッチ座標 X:", 0, 60, 24, color(0,0,0))
canvas.drawText("タッチ座標 Y:", 0, 90, 24, color(0,0,0))
canvas.drawRect( 0, 120, 50, 170, color(255,0,0),1)
canvas.drawRect( 3, 123, 47, 167, color(255,255,255),1)
canvas.drawText("画面の四角枠内のタッチで終了します。", 0, 180, 24, color(0,0,0))
while not ((x >= 0 and x <= 50) and (y >= 120 and y <= 170)) do
x,y,mode = touch(0)
canvas.putRect( 200, 30, 512, 114, color(255,255,255),1)
canvas.putText(x, 200, 60, 24, color(0,0,0))
canvas.putText(y, 200, 90, 24, color(0,0,0))
if mode == 0 then
canvas.putText("タッチしている", 200, 30, 24, color(0,0,0))
elseif mode == 1 then
canvas.putText("タッチしていない", 200, 30, 24, color(0,0,0))
elseif mode == 2 then
canvas.putText("タッチしてスライドしている", 200, 30, 24, color(0,0,0))
elseif mode == 3 then
canvas.putText("キャンセルされた", 200, 30, 24, color(0,0,0))
elseif mode == 4 then
canvas.putText("範囲外にタッチしている", 200, 30, 24, color(0,0,0))
end
canvas.putflush()
end
end
main()