obj.draw

lua.txtの記述

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()


複数描画

【複数記述する】
obj.draw()を記述した数だけ描画されるので、2つ重ねて描画すると、画像が2つ描画されます。
obj.draw(-50)
obj.draw(50)

【for文】
for文を使用して繰り返し描画することが多いです。→詳細はLua構文のfor文を参照。
for i=0,4 do
  obj.draw(-200+i*100)
end



obj.draw以降にスクリプトは適用されない

obj.drawの最大の難点です。
obj.drawで描画すると、それ以降はフィルタ効果やスクリプトが適用されなくなります。
「上のオブジェクトでクリッピング」も適用不可となります。

【フィルタ効果を遡って適用】
ただし、引数なしのobj.effectを記述することで遡ってフィルタ効果を適用させることが出来ます。
obj.draw()を使用する時は、obj.effect()を記述するクセをつけてもよいかもしれません。
obj.effect() --クリッピングがこの位置に遡って適用される
x=obj.time*10
y=obj.time*10
obj.draw(x,y) --オブジェクトを描画

obj.effect("クリッピング","上",30) --この位置ではクリッピングは適用されない

【仮想バッファ】
フィルタ効果を反映させる方法として、仮想バッファを利用する方法もあります。
仮想バッファに描画した画像を読み込むと、別途ひとつのオブジェクトとして生成されるため、フィルタ効果などが適用可能になります。


回転

obj.drawで描画した場合に、設定ダイアログのトラックバーで画像を回転させると、全体ではなく、個別の画像を中心に回転します。
画像を複数描画した場合に試してみると分かりやすいです。
全体を回転させたい場合には、obj.drawpolyを使用する方法があります。

  • 最終更新:2011-12-16 17:10:32

このWIKIを編集するにはパスワード入力が必要です

認証パスワード