Luaridaグラフィック編 (3)
Luaridaのグラフィック関連のコマンドは下記です。
グラフィックコマンド
-
- color() : 色コード計算
- canvas.drawLine : 線を引く
- canvas.drawRect : 矩形を描く
- canvas.drawCircle : 円を描く
- canvas.drawCls : 指定色で塗りつぶす
- canvas.drawText : 文字を書く
- canvas.drawTextCenter : センタリングして文字を書く
- canvas.drawTextBox : 指定領域で折り返して文字を書く
- canvas.getviewSize : 画面サイズを取得する
- canvas.putg : ワーク画面からメイン画面に画像を出力する
- canvas.getg : メイン画面の画像をワーク画面に取得する
- canvas.putflush : フラッシュしてputg()した画像を表示する。
- canvas.loadBmp : PNGファイルをワーク画面に読み込む
- canvas.saveBmp : ワーク画面の画像をPNGファイルとして保存する
- canvas.workCls : ワーク画面を指定色で塗りつぶす
簡単に例をあげつつ説明していきます。
color( R, G, B [,Alpha] )
0〜255の範囲で赤、緑、青の色強度を指定します。透過度Alphaも指定できます。
例.
canvas.drawCls(color(255,255,255))
画面を白に塗りつぶします。
canvas.drawLine( x0, y0, x1, y1, 色 )
メイン画面の(x0,y0)-(x1,y1)の範囲に、指定色で線を引きます。
例.
canvas.drawLine( 0, 0, 100, 100, color(0,0,0) )
画面座標(0,0)から(100,100)までを黒い線で結びます。
canvas.drawRect( x0, y0, x1, y1, 色 [,塗りつぶし])
メイン画面の(x0,y0)-(x1,y1)が対角となる矩形を指定色で描きます。
塗りつぶし: 0枠だけ, 1: 塗りつぶし
となります。塗りつぶしは省略可能です。
例.
canvas.drawLine( 0, 0, 100, 100, color(0,0,0), 1 )
画面座標(0,0)と(100,100)を対角とする矩形を黒く塗りつぶします。
canvas.drawCircle( x, y, r, 色 [,塗りつぶし])
メイン画面の(x,y)を中心に半径rの円を指定色で描きます。
塗りつぶし: 0枠だけ, 1: 塗りつぶし
となります。塗りつぶしは省略可能です。
例.
canvas.drawCircle( 100, 100, 25, color(255,0,0) )
画面座標(100,100)を中心とする半径25の赤い円を書きます。
canvas.Cls( 色 )
指定色でメイン画面を塗りつぶします。ただし、color(0,0,0,0)で塗りつぶすことはできません。意味が無いかなと思って。
例.
canvas.Cls( color(0,0,0) )
メイン画面を黒で塗りつぶします。
以下、graphicsample.luaサンプルファイルです。
----------------------------------------- --グラフィックサンプル ------------------------------------------ --関数宣言-------------------------------- main={} --mainメソッド --グローバル変数宣言---------------------- ------------------------------------------ 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 = 0 local y = 0 local cx, cy local r canvas.drawCls( color(255,255,255) ) for x=0,100,2 do canvas.drawLine( x*2, 0, 200-x*2, 200, color(255,0,0) ) canvas.drawLine( 0, x*2, 200, 200-x*2, color(0,255,255) ) end canvas.drawRect( 0, 201, 200, 250, color(0,0,255) ) canvas.drawRect( 201, 201, 300, 250, color(0,255,60), 1 ) cx = 200 cy = 200 r = 50 canvas.drawCircle( cx, cy, r, color(0,0,0) ) canvas.drawCircle( cx, cy, 20, color(0,0,255), 1 ) touch(3) end main()