子の座標で取得出来るのは
親を正位置に戻した状態のローカル座標(子に設定した座標そのまま)
親を回転や移動した場合は自分で計算する必要がある
objchildは子までしか正常に動作しない
子だけならfvdir使えば簡単に算出できる
#include "hgimg3.as"
hgini
setfont 16,16,12,1 ; font Tex select(cx,cy,px,mode)
texload dir_exe+"/sample/hgimg3/fontchr.bmp" ; フォントテクスチャの登録
setsizef 2.0, 2.0
addbox mdid
regobj obj_Parent,mdid
regobj obj_Child,mdid
objchild obj_Parent,obj_Child
setpos obj_Child,5
//座標が正しいか確認用オブジェクト
setcolor 255,50,50
addbox mdid
regobj obj,mdid
selcpos
objset3 0.0, 0.0, 20.0
*main
stick k,$fff
if k&128 : goto *owari
if k&64 {//Ctrlキーを押しながら方向キーで親の移動
selpos obj_Parent
if k&2 : objadd3 0.0, -0.05, 0.0
if k&8 : objadd3 0.0, 0.05, 0.0
if k&4 : objadd3 0.05, 0.0, 0.0
if k&1 : objadd3 -0.05, 0.0, 0.0
} else {//方向キーとマウス左右クリックで親の回転
selang obj_Parent
if k&1 : objadd3 0.0, -0.05, 0.0
if k&4 : objadd3 0.0, 0.05, 0.0
if k&2 : objadd3 0.05, 0.0, 0.0
if k&8 : objadd3 -0.05, 0.0, 0.0
if k&256 : objadd3 0.0, 0.0, 0.05
if k&512 : objadd3 0.0, 0.0, -0.05
}
hgdraw
getpos obj_Parent,x,y,z
fprt "obj_Parent x="+x+" y="+y+" y="+z,8,8
getang obj_Parent,ax,ay,az
getpos obj_Child,vx,vy,vz
fvset fv,ax,-ay,az //親のアングルをfvにセット(アングルYは+-反転させる必要がある)
fvdir fv,vx,vy,vz //子の座標をセットされてる角度で回転
fvadd fv,x,y,z //上で回転した座標に親の座標を加算
fprt "obj_Child x="+fv+" y="+fv(1)+" y="+fv(2),8,8+24
//座標が正しいか確認用オブジェクト
setpos obj,fv,fv(1),fv(2)
addang obj,,0.1
hgsync 16
goto *main
*owari
end
/pre>