|
3D-программирование Вопросы, касающиеся программирования 3D мира |
10.02.2011, 18:10
|
#1
|
ПроЭктировщик
Регистрация: 01.02.2011
Сообщений: 148
Написано 7 полезных сообщений (для 8 пользователей)
|
RTS
Вот у мя примерчик
Graphics3D 1024,768,32,2 SetBuffer BackBuffer() c=CreateCamera() cub=CreateCube() MoveEntity cub,0,0,10 Global Ramkax1 Global Ramkay1 Repeat Cls RenderWorld() Ramka() Flip() Until KeyHit(1) End Function Ramka() If MouseHit(1) Then Ramkax1=MouseX() Ramkay1=MouseY() EndIf If MouseDown(1) Then Color 20,200,20 Ramkax2=MouseX() Ramkay2=MouseY() Line Ramkax1,Ramkay1,Ramkax2,Ramkay1 Line Ramkax1,Ramkay2,Ramkax2,Ramkay2 Line Ramkax1,Ramkay1,Ramkax1,Ramkay2 Line Ramkax2,Ramkay1,Ramkax2,Ramkay2 Else Ramkax1=MouseX() Ramkay1=MouseY() EndIf End Function
Как сделать проверку НАХОДИТСЯ ОБЪЕКТ ВНУТРИ РАМКИ ИЛИ НЕТ???
|
(Offline)
|
|
10.02.2011, 18:33
|
#2
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: RTS
Graphics3D 1024,768,32,2 SetBuffer BackBuffer() c=CreateCamera() Global cub=CreateCube() MoveEntity cub,0,0,10
Global CubSelect Global Ramkax1, Ramkay1,Ramkax2, Ramkay2
Repeat Cls CameraProject(c,EntityX(cub),EntityY(cub),EntityZ(cub)) ; определяем 2д проекцию из 3д RenderWorld() Ramka() Flip() Until KeyHit(1) End
Function Ramka() If MouseHit(1) Then Ramkax1=MouseX() Ramkay1=MouseY() EndIf If MouseDown(1) Then Color 20,200,20 Ramkax2=MouseX() Ramkay2=MouseY() Line Ramkax1,Ramkay1,Ramkax2,Ramkay1 Line Ramkax1,Ramkay2,Ramkax2,Ramkay2 Line Ramkax1,Ramkay1,Ramkax1,Ramkay2 Line Ramkax2,Ramkay1,Ramkax2,Ramkay2 If Ramkax1>Ramkax2 Then Ram1x=Ramkax1 Ram2x=Ramkax2 Else Ram1x=Ramkax2 Ram2x=Ramkax1 EndIf If Ramkay1>Ramkay2 Then Ram1y=Ramkay1 Ram2y=Ramkay2 Else Ram1y=Ramkay2 Ram2y=Ramkay1 EndIf Text ProjectedX(),ProjectedY(),"# KY6" ; центр куба в 2д If (ProjectedX()<Ram1x And ProjectedX()>Ram2x) EntityColor cub,255,200,200 CubSelect=True Else EntityColor cub,255,255,255 CubSelect=False EndIf Else Ramkax1=MouseX() Ramkay1=MouseY() If CubSelect=True EntityColor cub,255,100,100 Else EntityColor cub,255,255,255 EndIf EndIf End Function
о какой либо оптимизации и красоте кода особо не морочился..
так же тут пример на cub. А если их много будет по Type, тогда уже проходить по всем кубам на проекциию
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо LLI.T.A.L.K.E.R. за это полезное сообщение:
|
|
10.02.2011, 18:37
|
#3
|
ПроЭктировщик
Регистрация: 01.02.2011
Сообщений: 148
Написано 7 полезных сообщений (для 8 пользователей)
|
Ответ: RTS
УУУхты спасибо огромное!!!!!!
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:00.
|