Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 10.02.2011, 18:10   #1
}{@KeR
ПроЭктировщик
 
Регистрация: 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(1Then 
        Ramkax1
=MouseX()
        
Ramkay1=MouseY()
EndIf 
If 
MouseDown(1Then
        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
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 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 Ramkax1Ramkay1,Ramkax2Ramkay2

Repeat
    Cls 
    
    CameraProject
(c,EntityX(cub),EntityY(cub),EntityZ(cub)) ; определяем 2д проекцию из 3д
    
    RenderWorld
()
    
Ramka()
    
Flip()
Until KeyHit(1)
End 

Function Ramka()
    If 
MouseHit(1Then 
        Ramkax1
=MouseX()
        
Ramkay1=MouseY()
    EndIf 
    If 
MouseDown(1Then
        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. за это полезное сообщение:
MOrtAl44444 (10.02.2011), }{@KeR (10.02.2011)
Старый 10.02.2011, 18:37   #3
}{@KeR
ПроЭктировщик
 
Регистрация: 01.02.2011
Сообщений: 148
Написано 7 полезных сообщений
(для 8 пользователей)
Ответ: RTS

УУУхты спасибо огромное!!!!!!
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com