fc2ブログ
Top Page › 未整理 › 【Luarida】Android端末上で簡易的なアプリの開発ができる!

2011 · 02 · 27 (Sun) 22:23

【Luarida】Android端末上で簡易的なアプリの開発ができる!

LuaridaはAndroidの端末上で簡単にアプリが作れちゃうツールです。
適当なテキストエディタなどでプログラムを書いて、そのまま実行出来ちゃいます。
ベース言語は「Lua」です、この言語は前から気になっていたのでちょっと調べていたのですがまさかここでそれが役に立つとは。。と言っても、ちょっと調べただけで全くそれでなにか作った経験が有るというわけじゃないので、リファレンスを見ながら弄っています。

Luaridaはこちらのページのたろサさんが開発されています、バージョンアップはかなりのペースでされています。
また、要望なども気軽にということですので欲しい命令があったら連絡してみると良いかも^^
俺はメインでGalaxyTabのカスタムROM「Overcom1.1.3」でOCして1.4Gで動作させているのですが非常に高速です。
DesireでもCM6の1.113Ghzで動作させてみましたが、GalaxyTabよりは劣るもののいい感じで動いています。

簡単に導入とサンプルプログラムでも書いてみようと思います。

まずは、マーケットにてLuaridaを検索しインストールします。
サンプルソースなどもマーケットに用意されていますが、本体を探して間違えずにインストールしてください。

次にテキストエディタをインストールするわけですが、アストロをインストールしてあるのであれば何を使っても大丈夫だと思います。
アストロ自体に拡張子「lua」を登録してしまえば、アストロからLuarida本体やテキストエディタに直接ファイルを送信できるからです。

アストロの設定方法は、menu→more→環境設定→ファイル拡張子を編集
新しい拡張を選択し、拡張子にluaと入力、MIMEタイプはTEXT、サブタイプはlua、右上の四角でお好みのアイコンを設定します。そして保存。
これでアストロ上から拡張子luaのファイルをタップすると、テキストエディタとLuaridaの選択が出ます。

もう一つの方法は、Jota Text Editorを使う方法です。
こちらではエディタ上から直接Luaridaを呼び出すことができます。
menu→設定→送信先アプリ設定で開くを選択、操作の選択で出てきた一覧からLuaridaを選びます。
これでエディタ上でmenuを押下するとメニューにLuaridaのボタンが出来ますのでそれで起動できます。
このアプリではプログラムにエラーが合った場合、エラー行にカーソルが表示されてくれます。
エラーになった時や停止させた時にアプリを選択するようにメニューが出るので、Jota をいつも使うにチェックを入れて選択してください。

以上で簡単ですが、環境が整いました。

初めて作ったアプリですが以下にサンプルを置いておきます。
無駄がいっぱいありますが、ツッコミは受け付けませんw
たとえば、main関数に擦る必要はないだろうし、中で登録している変数はlocal宣言しなくても問題ないはずです。
してないのもあるし。



function main()
local w,h = canvas.getviewSize()
local bx = {}
local by = {}
local bxp = {}
local byp = {}
local blflag = {}
local blsize = 16
local x,y,b = 0,0,0
local psize = w/8
local px,py = w/2,h-30
for i=1,5 do
       bx[i],by[i],bxp[i],byp[i],blflag[i] = 0,0,0,0,0
end
blflag[1] = 1
local ball = 1
local sc,cnt = 0,0
local psec = system.getSec()
canvas.drawText("touch start",w/3,h/2,64,color(255,255,255))
touch(3)
----main loop start
while (true) do
-- time
tm = (system.getSec() - psec)
mat = 60 - string.match(tm,"%w+")
if (mat == 0) then
    dialog("Game Over","SCORE : " .. sc,1)
    system.exit()
end
-- ball on
if (blflag[(cnt / 10 + 1)] == 0) then
    blflag[(cnt / 10 + 1)] = 1
end
for i=1,5 do
   if (blflag[i] == 1) then
       bx[i],by[i],bxp[i],byp[i],blflag[i] = 20,20,12,12,2
    end
end
-- touch
x,y,b = touch()
if (b == 2) then
    px = x
end
canvas.putCls(color(0,0,0))
score  = "SCORE:" .. sc
canvas.putText(score,0,0,32,color(255,255,255))
canvas.putText(mat,w/2,0,32,color(255,255,255))
for i=1,5 do
if (blflag[i] == 2) then
if ( (bx[i] > ( w - blsize )) or ( bx[i] < blsize ) ) then
    bxp[i] = bxp[i] * -1
elseif ( by[i] < 0) then
    byp[i] = byp[i] * -1
elseif ( by[i] > h + blsize ) then
    bxp[i],byp[i] = 12,12
    bx[i],by[i] = math.random(20,w-20),20
elseif (( bx[i] > px - psize) and (bx[i] < px + psize) and (by[i] <
h-20)
and (by[i] > h - 40 )
) then
    if ( bx[i] < px - ( psize * 0.5 ) ) then
        bxp[i] = bxp[i] - 10
    elseif (bx[i] >= px + ( psize * 0.5 ) ) then
        bxp[i] = bxp[i] + 10
    else
        if (bxp[i] > 0) then
            bxp[i] = 12
        else
            bxp[i] = -12
        end
    end
    byp[i] = byp[i] * -1
    sc = sc + math.abs(bxp[i])
    cnt = cnt + 1
end
bx[i] = bx[i] + bxp[i]
by[i] = by[i] + byp[i]
canvas.putCircle( bx[i],by[i],blsize,color(255,255,255) )
end
end
canvas.putRect(px - psize,h-40,px + psize,h-20,color(255,255,255),1)
canvas.putflush()
end
end
main()


60秒間パドルでボールを弾き返すだけのゲームです。
パドルはタッチで操作します。パドルの端にボールが当たると鋭角に反射します。
ボールを反射させると得点が入りますが、鋭角になればなるほど高得点になります。。
1500点以上を目指してください~
とはいえ、端末の性能により速度が変わってしまうので得点も変わってきてしまうと思います。

また、なにかゲームを作ったらココにソースを載せようと思います。
ちなみに、画像や音データを使えばそれらも使えますが、あえてソースのみで完結するものだけを作る予定です。(掲示板で簡単にアプリを公開できますので)




最終更新日 : 2016-03-27

Comments







非公開コメント