obj.setanchor

lua.txtの記述

obj.setanchor(name,num[,option,..])
アンカーポイントを表示します。
この関数を呼び出した時にアンカーポイントの表示設定とアンカーが移動していた場合の変数への反映を行います。
※この関数はスクリプトの呼び出し毎に8回まで呼ぶ事が出来ます。
※呼び出し順序や回数を変更すると正しく反映されない場合があります。
name --dialogで指定されている座標を格納する変数名を指定します。※変数名を文字列として指定
"track"を指定すると--track0から指定されているトラックバーの始点終点中間点の値を参照します。
num アンカーポイントの数を指定します。最大16個まで指定できます。
name="track"の場合は0を指定して下さい。アンカーポイント数は開始終了中間点の数になります。
option 各種オプションを列挙出来ます。
"line"=アンカーポイントを線で結びます。
"loop"=アンカーポイントを線で結び一周させます。
"star"=アンカーポイントをオブジェクトの中心とそれぞれ線で結びます。
"arm"=アンカーポイントとオブジェクトの中心を線で結びます。
"xyz"=アンカーポイントを3D座標で制御します。※デフォルトは2D座標
戻り値 取得したアンカーポイントの数
例:obj.setanchor("pos",3)
n = obj.setanchor("track",0,"line")



解説

アンカーポイントを設置し、マウスドラッグでアンカーポイントの座標を調整できるようになります。

任意の名前の配列(例"pos")を指定し、その配列に座標が格納されます。
pos={x0,y0,x1,y1,x2,y2,…}
オプションの一覧
setanchor01.png

X,Y座標で使用するケース


@anc2D_test
--track0:個数,1,16,3,1
--dialog:座標,pos={};
num=obj.track0
obj.setanchor("pos",num,"loop")
for i=0,num-1 do
  x = pos[i*2+1]     --x座標はpos[1],pos[3],pos[5],…なので。
  y = pos[i*2+2]     --y座標はpos[2],pos[4],pos[6],…なので。
  obj.draw(x,y)
end



X,Y,Z座標で使用するケース


@anc3D_test
--track0:個数,1,5,3,1
--dialog:座標,pos={};
num=obj.track0
obj.setanchor("pos",num,"loop","xyz")
for i=0,num-1 do
  x = pos[i*3+1]     --x座標はpos[1],pos[4],pos[7],…なので。
  y = pos[i*3+2]     --y座標はpos[2],pos[5],pos[8],…なので。
  z = pos[i*3+3]     --z座標はpos[3],pos[6],pos[9],…なので。
  obj.draw(x,y,z)
end



トラックバーで使用するケース

中間点の数+2のアンカーポイントが設置されます。
トラックバーで移動方法を変更した時に、各座標が移動可能になります。

@ancTrack_test
--track0:X,-2000,2000,0
--track1:Y,-2000,2000,0
--dialog:座標,pos={};
num=obj.setanchor("track",0,"loop")    --戻り値でアンカーポイントの数を取得
for i=0,num-1 do
  x = obj.getvalue(0,0,i)
  y = obj.getvalue(1,0,i)
  obj.draw(x,y)
end


  • 最終更新:2012-02-13 20:45:11

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

認証パスワード