Luarida Ver1.01Beta リリース
Android用スクリプト言語のLuaridaをリリースしました。まだまだβ版でバグバグですが、ひとまずアンドロイドマーケットに公開しました。
簡単に説明したいと思います。
名前の由来
Luaridaは、Luaというスクリプト言語で書きます。名前の先頭のLuaはこの言語名を取っています。後半部は私が住んでいるところの名前です。和歌山県の有田市(ありだし)というところに住んでいるので、地元有田の名前を取って「ルアリダ」と付けました。何とか、地元有田市を有名にしたいと思っています。
アイコンは有田の名物、みかんと太刀魚です。太刀魚の漁獲高は全国一らしいです。みかんは有名な有田みかんの里です。
Lua言語
LuaridaはLua言語を用いて記述します。Luaの説明はLua5.1リファレンスマニュアルに詳しく書かれています。いろいろなことができますが、そんなに凝らなくてもif文とかfor文、while文など、C言語ライクな書式でプログラムが書けます。
LuairdaのAndroid用拡張命令
Luaridaに実装したAndroid用の命令をざっと書きます。Lua言語の特徴として、関数からの戻り値を複数取ることができます。戻り値にカンマが付いているのは、戻り値が複数あることを示します。また、引数でカッコが付いているものは省略可能です。
touch( [タッチモード] ) 戻り値(X座標,Y座標,タッチ状態)
- touch() 画面のタッチ状態を取得します。
- touch(0) 画面のタッチ状態を取得します。
- touch(1) タッチダウンもしくはタッチ状態であれば処理が戻ります。
- touch(2) タッチアップもしくは離れている状態であれば処理が戻ります。
- touch(3) タッチアップ状態からタッチして、さらに指が離れた状態になれば処理が戻ります。
- タッチの状態( 0:タッチ押下, 1:指を持ち上げている, 2:指を持ち上げずにスライドさせている, 3:UP+DOWNの同時発生(=キャンセル), 4:ターゲットとするUIの範囲外を押下
color( R, G, B [,Alpha] ) 戻り値(色コード)
- 色コードが返ります。
- R,G,B,Alphaは0〜255。
canvas.drawText( 文字列(255バイト), X座標, Y座標, 文字サイズ, 文字色 [,背景色] )
- 文字を描きます
- 文字に背景色を付けたいときは、背景色を付ければ表示されます。
canvas.drawTextCenter( 文字列(255バイト), X座標, Y座標, 文字サイズ, 文字色 [,背景色] )
- X座標の値が中央に来るように文字を描きます。
- 文字に背景色を付けたいときは、背景色を付ければ表示されます。
canvas.drawTextBox( 文字列(255バイト), X座標, Y座標, サイズ, 文字色, 描画範囲 [,背景色] ) 戻り値(表示した行数)
- 指定された範囲に折り返して文字を描きます。
- 文字に背景色を付けたいときは、背景色を付ければ表示されます。
canvas.drawLine( startX, startY, stopX, stopY, 色)
- 画面に線を引きます
canvas.drawRect( startX, startY, stopX, stopY, 色 [,塗りつぶし])
- 画面にボックスを描きます
- 塗りつぶし 0:枠だけ, 1:塗りつぶし
canvas.drawCircle( CenterX, CenterY, RadiusX, 色 [,塗りつぶし])
- 画面に円を描きます
- 塗りつぶし 0:枠だけ, 1:塗りつぶし
canvas.drawCls( 背景色 )
- 画面を塗りつぶします
canvas.getviewSize() 戻り値(横サイズ,縦サイズ)
- 画面のサイズを取得します
dialog(タイトル, 本文 [,ボタンの種類]) 戻り値(ボタンコード)
- 画面にダイアログを出します。
- ボタンの種類: 0:ボタンなし, 1:OK, 2:Yes/No, 3:Yes/No/Cancel
- 戻り値 0:Cancel, 1:OK/Yes, 2: No
toast(本文,表示時間)
- 画面にトーストを出します。
- 表示時間: 0:短い, 1:長い
editText(タイトル) 戻り値(入力文字, 入力結果コード)
- 文字入力ダイアログを表示します。
- 入力結果コード: 0:Cancel, 1:OK
expCall(class名)
- Androidアプリを明示的に呼び出します。
- アプリを呼び出した後、Luaridaは停止します。ただし、エラーが戻ったときには処理を続けます。
impCall(URIデータ)
- Androidアプリを暗黙的に呼び出します。
- アプリを呼び出した後、Luaridaは停止します。ただし、エラーが戻ったときには処理を続けます。
- 現在、Intent.ACTION_VIEWのみに対応しています。
item.add(文字 [,フラグ])
- リスト等の表示アイテムを追加します。
- Luaridaでは、ListやRadioボタン、Checkボタンダイアログを出すことができます。このコマンドは出力アイテムをセットするものです。
- フラグはチェックリストのチェックの有無をセットします。0:false, 1:true
item.clear()
- 追加した表示アイテムをクリアします。
item.list(文字) 戻り値(選択番号,選択結果コード)
- 選択リストを表示します。
- 選択番号は0〜255です。
- 選択結果コード: 0:キャンセル, 1:選択された
item.radio(文字, 初期選択位置) 戻り値(選択番号,選択結果コード)
- 選択ラジオボタンを表示します。
- 選択番号は0〜255です。
- 選択結果コード: 0:キャンセル, 1:選択された
item.check(文字) 戻り値(チェック結果1, チェック結果2, チェック結果3, チェック結果4, チェック結果コード)
- 選択チェックボタンを表示します。
- チェック結果は4つ戻ってきます。2バイト(16ビット)×4つ分ので64個のチェックの有無がビットで入っています。
- チェック結果コード: 0:キャンセル, 1:選択された
system.version() 戻り値(バージョン)
- Luaridaのバージョンが返ります。
Luaridaサンプル
恒例?のFizzBuzz問題のサンプルを書いておきます。
------------------------------------------ --FizzBizz問題 ------------------------------------------ function main() local fizz = "Fizz" local bizz = "Buzz" local desu = "です" local three = 3 local five = 5 local value local ValueEnd = 15 local y canvas.drawCls( color(255,255,255) ) canvas.drawText( "FizzBuzz問題を解いてみます", 0, 0, 16, color(0,0,0) ) y = 1 for value=1, ValueEnd do if( value<three )then if( value<five )then canvas.drawText( value..desu, 0, y*16, 16, color(0,0,0) ) else canvas.drawText( bizz..desu, 0, y*16, 16, color(255,0,0) ) five = five + 5 end else three = three + 3 if( value<five )then canvas.drawText( fizz..desu, 0, y*16, 16, color(0,255,0) ) else canvas.drawText( fizz..bizz..desu, 0, y*16, 16, color(0,0,255) ) five = five + 5 end end y = y + 1 end touch(3) end main()