------------------------------------------
-- 画面を揺らすサンプル shake_sample.lua
------------------------------------------
function main()
-- タッチ
local x, y, mode
x, y = 0,0
-- 画面サイズ
w,h = canvas.getviewSize()
ScrXMax, ScrYMax = canvas.getviewSize()
-- カラー
C_Black = color( 0, 0, 0)
C_White = color(255, 255, 255)
C_Blue = color( 0, 0, 255)
C_Red = color(255,0,0)
-- 乱数初期化
math.randomseed(os.time())
-- 画面描画
canvas.drawCls(C_White)
canvas.workCls()
canvas.drawText("画面を揺らすサンプル", 0, 0, 24, C_Black)
canvas.drawRect( 50, 50, ScrXMax - 50, ScrYMax - 50, C_Blue)
canvas.drawRect( w - 52, 0, w + 52 + 24 * 2, 24, C_Red)
-- メイン画面に画像を作成
canvas.drawText("地面 揺れ ",(ScrXMax - 7 * 100 + 50) /2, ScrYMax / 2 - 50, 100, C_Black)
canvas.loadBmp(system.getAppPath() .."/" .. "lua.bmp", 0, 0, 150, 150)
canvas.putg( ScrXMax / 2 - 150 / 2, ScrYMax / 2 - 150 / 2, ScrXMax / 2 + 150 / 2, ScrYMax / 2 + 150 / 2, 0, 0, 150, 150 )
canvas.putflush()
-- メイン画面をワーク画面にコピー
canvas.getg( 51, 51, ScrXMax - 52, ScrYMax - 52, 50, 50, ScrXMax - 52 + 50,ScrYMax - 52 +50)
-- 揺らす
while not (x >= w-60 and y <= 30) do --終了位置は甘い判定
x,y,mode = touch(0)
rndX = math.floor(math.random() * 20) + 1 - 10
rndY = math.floor(math.random() * 20) + 1 - 10
canvas.putg( 51 + rndX, 51 + rndY, ScrXMax - 52 + rndX, ScrYMax - 52 + rndY, 50, 50, ScrXMax - 52 + 50,ScrYMax - 52 + 50) -- ワーク画面の指定範囲をメイン画面の指定範囲にコピー
canvas.putflush()
end
canvas.drawText("画面タッチで終了します。", 0, ScrYMax - 25, 24, C_Black)
touch(3)
end
main()