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

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

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