forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Выбор объекта, как сделать? (http://forum.boolean.name/showthread.php?t=7629)

NitE 28.01.2009 18:44

Re: Выбор объекта, как сделать?
 
Код:

Graphics3D 1024,768,32,2
SetBuffer BackBuffer()

cam=CreateCamera()
MoveEntity cam,0,0,-30
light=CreateLight()

cube=CreateCube()

EntityPickMode cube,2
For i=1 To 10
cube=CopyMesh(cube)
MoveEntity cube,Rnd(-10,10),Rnd(-10,10),Rnd(-10,10)
EntityPickMode cube,2
Next

Repeat

If MouseHit(1)
pick=CameraPick(cam,MouseX(),MouseY())
shit=EntityDistance(cam,pick)
EndIf




Flip
UpdateWorld
RenderWorld
Text 20,20,"picked: "+pick
Text 20,40,"distance: "+shit
Until KeyHit(1)
End


tormoz 28.01.2009 21:41

Ответ: Выбор объекта, как сделать?
 
И нафига там нужен CopyMesh, если можно и нужно заюзать CopyEntity ?

NitE 28.01.2009 22:33

Re: Выбор объекта, как сделать?
 
а у меня он не работает :-D

Alex_Noc 29.01.2009 18:02

Ответ: Выбор объекта, как сделать?
 
я могу ошибатсо - но разве пик моде по наследству не переходит? (эт когда создаешь копию - то созданная копия уже имеет все что родитель имел)

NitE 29.01.2009 18:08

Re: Выбор объекта, как сделать?
 
тыбы лучше справку по командам Copy перечитал, естественно пик не переходит, это не чилд а копия )

ABTOMAT 30.01.2009 01:39

Ответ: Выбор объекта, как сделать?
 
Сам бы лучше почитал: чилды тоже пикаются отдельно

NitE 30.01.2009 22:51

Re: Выбор объекта, как сделать?
 
непонял - я говорю что копий не пикаются, ты говоришь что чилды пикаются, в чем смысл :-D ??

ABTOMAT 30.01.2009 23:17

Ответ: Выбор объекта, как сделать?
 
....
Цитата:

это не чилд а копия )

Lavatar 03.02.2009 20:48

Ответ: Выбор объекта, как сделать?
 
Все нормально, вроде работает, только есть одна проблема... У тебя камера неподвижна и вроде все нормально, а у меня "игрок" ходит, и почему-то с дистанцией творится что-то невообразимое... приближаюсь к одному объекту - она увеличивается, удаляюсь - уменьшается... и вообще непонятно по какому закону оно изменяется...

NitE 03.02.2009 21:23

Re: Выбор объекта, как сделать?
 
всё что тут можно сказать: она правильно работает
вопрос в том - что ты с ней делаешь что она неработает ?

Lavatar 04.02.2009 12:11

Ответ: Выбор объекта, как сделать?
 
Не знаю. вообще-то я вставлял ее в такую функцию:
Код:

Function MouseTest(); функция MouseTest-реализация выбора и нажатия клавиши мыши ====================================
        Local mx#,my#; задаются локальные переменные mx и my
        mx#=MouseX(); переменной mx присваивается координата Х указателя мыши
        my#=MouseY() ; переменной my присваивается координата Y указателя мыши
        Local pick, dist#; задается локальные переменные pick, dist#
          pick=CameraPick (camera,mx#,my#); выбирает объект, находящийся в области просмотра камеры и координатах mx и my (в данном случае указателя мыши)
        If pick Then;если указатель мыши находится на объекте
                dist=EntityDistance(camera,pickedentity())
                Locate 10,80 :Print "Dist="+ dist
                If  dist<30 Then
                        Draw_Wire_2D(PickedEntity (),camera,0,0,0)
                        If MausHitL Then
                                EntityPickMode PickedEntity (),0
                                Schet=Schet+1
                        EndIf
                EndIf
        EndIf
        Return Schet
End Function

Функция Draw_Wire_2D(PickedEntity (),camera,0,0,0) - просто подсветка объекта...


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

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