|
entity - указатель объекта
camera - указатель камеры |
|
Возвращает true, если объект находится в поле зрения данной камеры (т.е. видим).
Если объект типа mesh (сетчатая модель), то для него будет проверяться на видимость описанный вокруг объекта параллелепипед (границы объекта). Для всех других типов объектов будет проверяться только центральная точка объекта. |
|
; Пример EntityInView ; -------------------- Graphics3D 640,480 SetBuffer BackBuffer() camera=CreateCamera() PositionEntity camera,0,2,-10 light=CreateLight() RotateEntity light,90,0,0 plane=CreatePlane() ground_tex=LoadTexture("media/Chorme-2.bmp") EntityTexture plane,ground_tex cube=CreateCube() cube_tex=LoadTexture("media/b3dlogo.jpg") EntityTexture cube,cube_tex PositionEntity cube,0,1,0 While Not KeyDown( 1 ) If KeyDown( 205 )=True Then TurnEntity camera,0,-1,0 If KeyDown( 203 )=True Then TurnEntity camera,0,1,0 If KeyDown( 208 )=True Then MoveEntity camera,0,0,-0.05 If KeyDown( 200 )=True Then MoveEntity camera,0,0,0.05 ; Преобразуем 3D-координаты куба в 2D-координаты экрана CameraProject(camera,EntityX(cube),EntityY(cube),EntityZ(cube)) RenderWorld ; Если куб видим, то пишем надпись If EntityInView(cube,camera)=True ; Используйте ProjectedX() и ProjectedY(), чтобы получить 2D-координаты объекна на экране. ; В этих координатах пишем текст поверх 3D-сцены. Text ProjectedX#(),ProjectedY#(),"Cube" EndIf Text 0,0,"Use cursor keys to move about" Text 0,20,"ProjectedX: "+ProjectedX#() Text 0,40,"ProjectedY: "+ProjectedY#() Text 0,60,"ProjectedZ: "+ProjectedZ#() Text 0,80,"EntityInView: "+EntityInView(cube,camera) Flip Wend End |