 |
3D-программирование Вопросы, касающиеся программирования 3D мира |
02.09.2009, 07:28
|
#16
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: переход между уровнями ...
Вроде так.
If MouseDown (1) Then
Pick = CameraPick (camera,MouseX(),MouseY())
If Pick = door Then
;тут код, что надо сделать если тыкнул в дверь
EndIf
EndIf
|
(Offline)
|
|
02.09.2009, 20:07
|
#17
|
Оператор ЭВМ
Регистрация: 18.02.2009
Сообщений: 37
Написано 4 полезных сообщений (для 4 пользователей)
|
Ответ: переход между уровнями ...
А вот фиг .... Не пашет и всё я уже так пробовал раз 50 наверно !
__________________
Моя фантазия сводит меня с ума  ..... ХОРОШО....
Вы думаете вы нуб в Блитце ?  Поверьте у вас не всё так плохо как у меня
|
(Offline)
|
|
02.09.2009, 20:10
|
#18
|
Оператор ЭВМ
Регистрация: 18.02.2009
Сообщений: 37
Написано 4 полезных сообщений (для 4 пользователей)
|
Ответ: переход между уровнями ...
SkyDream , может ты сбацаешь какой нить мини-примерчик , чтоб при наводке кубик он посветился а при нажатии на него и взлетал например ! ..... Все равно спс кстати !
__________________
Моя фантазия сводит меня с ума  ..... ХОРОШО....
Вы думаете вы нуб в Блитце ?  Поверьте у вас не всё так плохо как у меня
|
(Offline)
|
|
05.09.2009, 18:37
|
#19
|
AnyKey`щик
Регистрация: 06.07.2009
Сообщений: 14
Написано 4 полезных сообщений (для 5 пользователей)
|
Ответ: переход между уровнями ...
Graphics3D 640,480,16,2
camera=CreateCamera()
light=CreateLight()
player=CreateSphere()
PositionEntity player, 2, 0, 0
cam=CreateCamera(player)
TurnEntity player, 0,30,0
watertext=LoadTexture("floor.jpg")
water=CreatePlane()
PositionEntity water,0,-2,0
ScaleTexture watertext, 1,1
EntityTexture water,watertext
;create texture for the movie & 3d entity
movietex = CreateTexture(256,256,256+4 
cube = CreateCube()
EntityPickMode cube, 2
EntityTexture cube,movietex
MoveEntity cube,0,0,2
;load movie
movie = OpenMovie("video.avi")
While Not KeyHit(1)
If (MouseHit(1)=True)
ent = CameraPick(cam,MouseX(),MouseY())
If ent
If MoviePlaying(movie)=0
movie = OpenMovie("video.avi")
EndIf
EndIf
EndIf
If KeyDown(200) MoveEntity player,0,0,0.2
If KeyDown(20  MoveEntity player,0,0,-0.2
If KeyDown(203) TurnEntity player,0,2,0
If KeyDown(205) TurnEntity player,0,-2,0
DrawMovie(movie)
CopyRect 0,0,256,256,0,0,BackBuffer(),TextureBuffer(moviete x)
RenderWorld
Flip
Wend
End
|
(Offline)
|
|
06.09.2009, 10:40
|
#20
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: переход между уровнями ...
Как то так... Я просто таким не страдал поэтому может можно и проще сделать.
Graphics3D 1024,768,32,2
SetBuffer BackBuffer()
Global cube = CreateCube()
EntityPickMode cube,2
EntityColor cube,255,0,0
RotateEntity cube,20,20,20
PositionEntity cube,0,0,15
Global light = CreateLight()
RotateEntity light,90,0,0
Global cam = CreateCamera()
Global Pick,Pick2
While Not KeyHit(1)
Update()
mouselook(cam)
RenderWorld()
Flip
Wend:End
Function Update()
Pick = CameraPick (cam,MouseX(),MouseY())
If Pick = cube Then
EntityColor cube,0,255,0
Else
EntityColor cube,255,0,0
EndIf
If MouseDown (1) Then
Pick2 = CameraPick (cam,MouseX(),MouseY())
If Pick2 = cube Then
EntityColor cube,255,0,0
MoveEntity cube,0,.5,0
EndIf
EndIf
End Function
Function mouselook(ent) ; Функция обзора мышью
mxspd#=MouseXSpeed()*0.25
myspd#=MouseYSpeed()*0.25
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
campitch#=EntityPitch(ent)+myspd#
If campitch#<-85 Then campitch#=-85 ; ограничения поворота
If campitch#>85 Then campitch#=85
RotateEntity ent,campitch#,EntityYaw(ent)-mxspd#,EntityRoll(ent)
End Function
|
(Offline)
|
|
07.10.2009, 01:02
|
#21
|
Оператор ЭВМ
Регистрация: 18.02.2009
Сообщений: 37
Написано 4 полезных сообщений (для 4 пользователей)
|
Ответ: переход между уровнями ...
Кхм , как странно , использовал код SkyDream'а на обычном энтити , работает , но стоит вставить аниммэш и тогда уже пик не срабатывает ?! Не подскажите в чём фишка ?! Пик + Аниммэш = пососамба !!! ( Кстати SkyDream , низкий тебе поклон за помощ нубью ) !
__________________
Моя фантазия сводит меня с ума  ..... ХОРОШО....
Вы думаете вы нуб в Блитце ?  Поверьте у вас не всё так плохо как у меня
|
(Offline)
|
|
07.10.2009, 07:29
|
#22
|
Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: переход между уровнями ...
drave, начет пик аниммеш я че то хз. Поидее должно и на нем работать. Может ты забыл добавить EntityPickMode?
Я тоже нуб еще и еще долго им буду и "нуб" мне кажется это как то грубо и не стоит этим словом себя или кого нибудь называть ибо каждый из нас в чем то нуб...
|
(Offline)
|
|
07.10.2009, 13:38
|
#23
|
Нуждающийся
Регистрация: 26.12.2008
Сообщений: 70
Написано 26 полезных сообщений (для 46 пользователей)
|
Ответ: переход между уровнями ...
рекурсия. аниммеш проверять по чилдам.
__________________
|
(Offline)
|
|
07.10.2009, 16:07
|
#24
|
Оператор ЭВМ
Регистрация: 18.02.2009
Сообщений: 37
Написано 4 полезных сообщений (для 4 пользователей)
|
Ответ: переход между уровнями ...
А по русски  !? Покажи примерчик плиз !!!! 
__________________
Моя фантазия сводит меня с ума  ..... ХОРОШО....
Вы думаете вы нуб в Блитце ?  Поверьте у вас не всё так плохо как у меня
|
(Offline)
|
|
07.10.2009, 16:51
|
#25
|
Мастер
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений (для 3,006 пользователей)
|
Ответ: переход между уровнями ...
Сообщение от drave
А по русски  !? Покажи примерчик плиз !!!! 
|
Ну тут все просто. При загрузке через аним меш много чего отпадает и в то же время наоборот. Вот например текстурить его только по чилдам, пикать тоже по чилдам, чилды мы ищем в меше так FindChild(ent,who$)
FindChild ( entity,child_name$ )
Параметры
entity - указатель объекта
child_name$ - имя дочернего объекта для поиска
Описание
Возвращает указатель на первый же дочерний объект указанного объекта, имя которого совпадает с child_name$.
Ну или проще напишу для тебя поконкретней. Надеюсь все правильно. Функция сработает если в аним меши есть чилды, автоматом присваивает всем чилдам заданный PickMode.
Function EntityPickModeAnim(entity,mode=2)
If CountChildren(entity) > 0
For childcount = 1 To CountChildren(entity)
child = GetChild(entity,childcount)
EntityPickMode child,mode
Next
EndIf
End Function
Применять так:
entity = LoadAnimMesh("mesh.b3d")
EntityPickModeAnim(entity,2)
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо EvilChaotic за это полезное сообщение:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:13.
|