最終更新:ID:q3nDD1gRAQ 2021年07月23日(金) 17:19:41履歴
関数 | obj.draw([ox,oy,oz,zoom,alpha,rx,ry,rz]) | |
---|---|---|
解説 | 現在のオブジェクトを描画します。メディアオブジェクトのみ使用出来ます。 通常何もしなくても最後に描画されますがobj.draw()を使うことにより オブジェクトを複数回描画することが出来ます。 ※obj.draw()を使用した場合スクリプト以降のフィルタ効果は実行されません。 ※obj.effect()を引数なしで呼ぶことで事前にスクリプト以降のフィルタ効果を実行出来ます。 | |
引数 | ox | 相対座標X |
oy | 相対座標Y | |
oz | 相対座標Z | |
zoom | 拡大率(1.0=等倍) | |
alpha | 不透明度(0.0=透明/1.0=不透明) | |
rx | X軸回転角度(360.0で一回転) | |
ry | Y軸回転角度(360.0で一回転) | |
rz | Z軸回転角度(360.0で一回転) | |
例 | obj.draw(2,10,0) |
obj.draw関数の引数はすべて省略可能です。
座標などの値を変更しない場合は、以下のように()にはなにも記述しません。
複数回描画する場合は、obj.draw関数を複数回実行します。
for文などを利用すると、指定した回数だけ繰り返すことができます。
座標などの値を変更しない場合は、以下のように()にはなにも記述しません。
obj.load("figure", "円") --円をobjに読み込む obj.draw() --画面に描画する
複数回描画する場合は、obj.draw関数を複数回実行します。
obj.load("figure", "円", 0xffffff, 200) --円をobjに読み込む --2つの円を描画する obj.draw(-200, 0) obj.draw(200, 0)
for文などを利用すると、指定した回数だけ繰り返すことができます。
obj.load("figure", "円", 0xffffff, 50) --円をobjに読み込む --円を50回描画する for i=-50,50 do obj.draw(i*5, i*5) --斜めに円が連続して、直線が描ける end
仮想バッファを利用すると、全体を1つのオブジェクトとして扱うことができるようになります。
イメージとしては、別のシーンにオブジェクトを配置して、それをRootで読み込むような形です。
obj.setoption("drawtarget","framebuffer") で、obj.draw関数が描画する先を仮想バッファにします。
イメージとしては、別のシーンにオブジェクトを配置して、それをRootで読み込むような形です。
obj.setoption("drawtarget","framebuffer") で、obj.draw関数が描画する先を仮想バッファにします。
obj.setoption("drawtarget","tempbuffer", obj.screen_w, obj.screen_h) -- 描画先を仮想バッファに変更 obj.load("figure","円",0xffffff,50) for i=-50, 50 do obj.draw(i*10, 0) --仮想バッファに円を描画 end obj.load("tempbuffer") --仮想バッファをobjに読み込み obj.effect("ぼかし", "範囲", "30") --仮想バッファ全体にエフェクトを掛ける obj.setoption("drawtarget","framebuffer") -- 描画先をフレームバッファに変更 obj.draw() --objに読み込まれた仮想バッファを描画
コメントをかく