Luaridaグラフィック編 (2)
昨日、マーケットにLuarida ver1.10Betaをアップロードしました。Luaridaは既にSDカードにluaridaフォルダがあると、サンプルプログラムをluaridaフォルダにインストールしないようになっています。
そこで、下記にLuarida ver1.10Betaに同梱したサンプルプログラムを書いておきます。コピーペーストして使ってください。使用画像ファイルも貼っておきます。
また、コピーペーストが面倒な場合は、SDメモリカードのluaridaフォルダの名前を変更して、luaridaを起動すれば、自動的にluaridaフォルダを生成して、サンプルプログラムを生成するようになっています。
プログラムファイル名: bitmapsample.lua
------------------------------------------ --Bitmapサンプル ------------------------------------------ --関数宣言-------------------------------- main={} --mainメソッド --グローバル変数宣言---------------------- Path="/sdcard/luarida/" --luaファイルのあるところ ------------------------------------------ mt={} mt.__newindex=function(mtt,mtn,mtv) dialog( "Error Message", "宣言していない変数 "..mtn.." に値を入れようとしています", 0 ) touch(3) end mt.__index=function(mtt,mtn) dialog( "Error Message", "変数 "..mtn.." は宣言されていません", 0 ) touch(3) end setmetatable(_G,mt) --------以下が実プログラム---------------- ------------------------------------------ --メインプログラム ------------------------------------------ function main() local x, y, s local px, py local dx = 16 local dy = 16 local v = 0 local w, h --ワークエリア画面をクリアします --ワークエリア画面は画面の9倍の広さを持っています。 canvas.workCls() --ワークエリアの(80,0)-(560,300)に、背景用画像を読み込みます if( canvas.loadBmp( Path.."kareudon.png", 80, 0, 480+80, 300 )==-1 )then dialog( Path.."kareudon.png", "ロードに失敗しました",1 ) do return end end --ワークエリアの(0,0)-(79,93)に、アンドロイド画像を読み込みます if( canvas.loadBmp( Path.."droidkun.png", 0, 0, 79, 93 )==-1)then dialog( Path.."droidkun.png", "ロードに失敗しました",1 ) do return end end --画面サイズ取得 w, h = canvas.getviewSize() px = w/2 py = h/2 --背景を画面に描きます canvas.putg( 0, 0, 480, 295, 80, 0, 480+80, 295 ) --ドロイド君を描きます canvas.putg( px-40, py-47, px+39, py+46, 0, 0, 79, 93 ) --フラッシュしないと画面に反映しません canvas.putflush() canvas.putflush() touch(1) --タッチするまで待つ while(v<50)do --canvas.putg( 0, 0, 480, 300, 80, 0, 560, 300 ) canvas.putg( px-40, py-47, px+39, py+46, 0, 0, 79, 93 ) --canvas.flush( px-40-2*dx, py-47-2*dy, px+39+2*dx, py+46+2*dy ) canvas.putflush() x, y, s = touch() if(x>px)then px = px + dx else px = px - dx end if( math.abs(x-px)<=dx )then px = x end if(y>py)then py = py + dy else py = py - dy end if( math.abs(y-py)<=dy )then py = y end --canvas.drawText( s, 0, 0, 16, color(0,0,0),color(255,255,255) ) v = v + 1 end --画面の絵をワークエリアに取り込みます canvas.getg( 0, 0, 480, 300, 0, 0, 480, 300 ) --ワークエリアの(0,0)-(500,500)の範囲をtest.pngというファイル名で保存します。 if( canvas.saveBmp( Path.."test.png", 0, 0, 500, 500 )==-1 )then dialog( Path.."test.png", "保存に失敗しました",1 ) else dialog( "画面を以下のファイルに保存しました", Path.."test.png",1 ) end end main()
カレーうどんの写真です。いつかの昼飯を撮ったもの。
kareudon.png
ドロイド君です。
droidkun.png