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

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

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

Luarida Ver1.20Betaの動画