先に見えてる物を選別せずにhgcnvaxisで選別すれば良い
>hgcnvaxis var_x,var_y,var_z,x,y,z,mode
のmodeを0で取得した場合var_zにZバッファ値が返るので利用する
負値又は1.0以上がカメラ外になる
負値はカメラ座標からNearZまでの間が指定された場合
#include "hgimg3.as"
hgini
chdir dir_exe+"\\sample\\hgimg3\\"
setfont 16,16,12,1 ; font Tex select(cx,cy,px,mode)
texload "fontchr.bmp" ; フォントテクスチャの登録
addbox m_model,10,10
repeat 500
regobj obj, m_model
setpos obj,1000-rnd(2000),500-rnd(1000),1000-rnd(2000)
setcoli obj,1
loop
clscolor $6060
cax=0.0
cay=0.0
*main
stick key,$3ff
if key&128 : goto *owari
mx=mousex
my=mousey
if key&512 {//マウス右ドラックでカメラ回転
mx_dif=mx-mx_bak
my_dif=my-my_bak
cax-=0.005*my_dif
cay-=0.005*mx_dif
}
mx_bak=mx
my_bak=my
setang HGOBJ_CAMERA,cax,cay, 0.0
hgdraw
findobj 0,1
repeat
nextobj id
if id<0{break}
getpos id,x,y,z
hgcnvaxis xx,yy,zz,x,y,z
if zz < 1.0 {
if zz > 0.0 {//カメラ範囲内
fprt ""+id,xx,yy
}
}
loop
hgsync 16 ; 時間待ち
goto *main
*owari
end