forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   EntityVisible (http://forum.boolean.name/showthread.php?t=13023)

Mark Castle 28.07.2010 18:09

EntityVisible
 
Вложений: 1
Граждане!Клепаю свой проект, и там нужно проверять на видимость объекты.ну так вот,выставляю для csm-карты entitypickmode map,2,1
а оно не фурычит.вот код
Код:

Graphics3D 1280,800,32,1
SetBuffer BackBuffer()
Include "lib1.bb"
Const s1=1,s2=2,map_type=3
maps=loadcsm("maps1.csm","textures\",map_type)
ScaleEntity maps,0.01,0.01,0.01
EntityPickMode maps,2,1
sh1=CreateSphere()
sh2=CreateSphere()
camera=CreateCamera()
PositionEntity camera,0,30,10
TurnEntity camera,110,0,0
PositionEntity sh1,2.5,0.9,3
PositionEntity sh2,-1.5,0.9,2.7
While Not KeyHit(1)
UpdateWorld()
RenderWorld()
If EntityVisible(sh1,sh2) Then Text 10,10,"visible" Else Text 10,10,"no"
Flip
Wend
End

что делать? может надо подправить в функции загрузки csm?
вот и оно:

maxturbo 28.07.2010 18:26

Ответ: EntityVisible
 
Что то с загрузкой файла не то, на простом примере все работает
вот код, так что ищи ошибку, или просто экспортируй в блитзовский формат загружай как анимеш и считывай чилдры, после присваивай все что хочешь к ним :)
Код:

Graphics3D 800,600,32,2
SetBuffer BackBuffer()
Const s1=1,s2=2
cube=CreateCube()
EntityPickMode cube,1
sh1=CreateSphere()
sh2=CreateSphere()
camera=CreateCamera()
PositionEntity camera,0,30,10
TurnEntity camera,110,0,0
PositionEntity sh1,10,0,0
PositionEntity cube,0,0,0

PositionEntity sh2,-10,0,0
While Not KeyHit(1)
If KeyDown(17) Then MoveEntity cube,0,0,.1
If KeyDown(31) Then MoveEntity cube,0,0,-.1
UpdateWorld()
RenderWorld()
If EntityVisible(sh1,sh2)
Text 10,10,"visible"
Else
Text 10,10,"no"
EndIf
Flip
Wend
End


Mark Castle 28.07.2010 18:35

Ответ: EntityVisible
 
можете проверить код в архиве?этот код загружает csm.а то я искал и не нашел ошибку...

maxturbo 28.07.2010 18:43

Ответ: EntityVisible
 
Так как ты применяешь его на прямую, мне кажется ни чего не получится!!! Делай как я описал выше!!!

Mark Castle 28.07.2010 18:48

Ответ: EntityVisible
 
что значит "напрямую"?у меня просто csm-карта, в комнатах бегают фрицы,и мне нужно, чтобы они меня не видели через стены!вроде ошибка где-то в loadcsm, а где-непонятно!тоесть в пределах карты не работает,а если по разние стороны карты - то работает!

maxturbo 28.07.2010 18:50

Ответ: EntityVisible
 
Вот тебе функция
Код:

Function RecurseSeek(FILE$)
        For i=1 To CountChildren(ent)       
                child=GetChild(ent,i)
                name$=Lower(EntityName(child))
                If Instr(name$,"Сдесь указываешь имя чилда")

                EndIf                       
        Next
End Function


Mark Castle 28.07.2010 18:52

Ответ: EntityVisible
 
и что мне с этим делать? можешь выложить пример, а то я никак не прошарю?

maxturbo 28.07.2010 18:57

Ответ: EntityVisible
 
Можешь попробовать подправить код загрузчика, найди там в LoadCSM вот эту строчку mesh=CreateMesh(map) и после нее введи EntityPickMode mesh,2 может заработает :)

maxturbo 28.07.2010 19:03

Ответ: EntityVisible
 
Все заработало? :)

Mark Castle 28.07.2010 19:10

Ответ: EntityVisible
 
да,спасибо большое!!

maxturbo 28.07.2010 19:11

Ответ: EntityVisible
 
Пожалуйста!!!


Часовой пояс GMT +4, время: 15:03.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot