Luarida Ver 1.20Beta リリース
Luarida Ver 1.20Betaをリリースしました。先ず、このバージョンで使える独自コマンドの一覧を書きます。赤く色づいている部分が今回新規または修正されたものです。取り消し線のものはコマンドが無くなりました。
System関連
system.setrun( Luaridaファイル名 )
system.version()
system.expCall( クラス名 )
system.impCallActionView( データ文字列, タイプ )
system.impCallActionSend( データ文字列 [,タイプ] )
system.exit()
touch( [タッチ条件] )
editText( タイトル )
impCall( データ文 )
expCall( クラス名.アクティビティ名 )
グラフィック関連
color( R, G, B [,Alpha] )
canvas.drawLine( X0, Y0, X1, Y1, 色)
canvas.drawRect( X0, Y0, X1, Y1, 色 [,塗りつぶし])
canvas.drawCircle( CX, CY, R, 色 [,塗りつぶし])
canvas.drawCls( 背景色 )
canvas.getviewSize()
canvas.putg( GX0,GY0,GX1,GY1,WX0,WY0,WX1,WY1 )
canvas.getg( GX0,GY0,GX1,GY1,WX0,WY0,WX1,WY1 )
canvas.loadBmp( 画像ファイル名, WX0,WY0,WX1,WY1 )
canvas.putflush([GX0,GY0,GX,GY1])
canvas.saveBmp( 画像ファイル名, WX0,WY0,WX1,WY1 )
canvas.workCls([Color])
文字描画関連
canvas.drawText( 文字列, GX, GY, 文字サイズ, 文字色[,背景色] )
canvas.drawTextCenter( 文字列, CX, GY, 文字サイズ, 文字色[,背景色] )
canvas.drawTextBox( 文字列, GX, GY, 文字サイズ, 文字色, 描画幅[,背景色] )
ダイアログ関連
dialog( タイトル, 本文[,ボタンの種類] )
toast( 本文, 表示時間 )
item.add( 文字[,フラグ] )
item.clear()
item.list( タイトル )
item.radio( タイトル,初期選択位置 )
item.check( タイトル )
センサ関連
sensor.getAccel()
Luarida本体機能追加部分
アプリ連携機能を強化しました。アプリの呼び出し機能の強化として、system.expCall()、system.impCallActionView()、system.impCallActionSend()を追加しましたが、Luarida本体でも、他アプリからのLuaridaスクリプトの受け取りを可能にしました。
これにより、他アプリからのLuaridaスクリプトの自動実行が可能となりました。
センサ情報取得機能の追加
試しに、加速度センサの情報を取得できるようにしてみました。まだ、テストなので仕様は変更すると思います。以下にサンプルを書いておきます。
------------------------------------------ --加速度センササンプル ------------------------------------------ --関数宣言-------------------------------- main={} --mainメソッド --グローバル変数宣言---------------------- Path = "/sdcard/luarida/" ------------------------------------------ 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 ax, ay, az local a, cl local w, h, px, py local x,y,s local lx,ly --ワークエリア画面をクリアします canvas.workCls() --ワークエリアの(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 --ワークエリアの(80,0)-(480,300)に背景画像を読み込みます if( canvas.loadBmp( Path.."kareudon.png", 80, 0, 560, 300 )==-1)then dialog( Path.."kareuson.png", "ロードに失敗しました",1 ) do return end end --画面サイズ取得 w, h = canvas.getviewSize() px = w/2 - 40 py = h/2 -47 --背景を描きます canvas.putg( 0, 0, w, h, 80, 0, 560, 300 ) --ドロイド君を描きます canvas.putg( px, py, px+79, py+93, 0, 0, 79, 93 ) --フラッシュしないと画面に反映しません canvas.putflush() lx = 0 ly = 0 while(true)do --加速度を取得 ax, ay, az = sensor.getAccel() lx = lx + ay px = px + lx if( px<0 )then px = 0 lx = 0 elseif( px>w-79 )then px = w - 79 lx = 0 end ly = ly + ax py = py + ly if( py<0 )then py = 0 ly = 0 elseif( py>h-93 )then py = h - 93 ly = 0 end canvas.putg( 0, 0, w, h, 80, 0, 560, 300 ) canvas.putg( px, py, px+79, py+93, 0, 0, 79, 93 ) canvas.putflush() --画面タッチで終了 x,y,s = touch() if( s~=1 )then break end end end main()