|
3D-программирование Вопросы, касающиеся программирования 3D мира |
02.10.2005, 18:22
|
#61
|
Бывалый
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений (для 3 пользователей)
|
Все ресурсы качайте с самой первой страницы этой темы!
|
(Offline)
|
|
02.10.2005, 19:55
|
#62
|
Администратор
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений (для 996 пользователей)
|
хз, у меня камера нормально крутится, вроде без сбоев...
чтоб сделать чтоб камера смотрела не на робота, нужно создать объект на который бы она смотрела, а еще лучше пивот (см код)
;tipy dlya kolliziy
Const robotType = 1
Const levelType = 2
Const boxType = 3
Const cameraType = 4
Graphics3D 1024,768,32,1
;shrift pokrupnee
font = LoadFont ("arial cyr",20)
SetFont font
l = CreateLight()
RotateEntity l, 0, 45, 45
level=LoadMesh ("MAPS\TUR.3ds")
grunt=LoadTexture("Panels.jpg")
EntityTexture level,grunt
FreeTexture grunt
PositionEntity level,0,-7,0
;typ dlya kollizii
EntityType level,levelType
robot = LoadAnimMesh( "ROBOT\robotic.3ds" )
LoadAnimSeq robot, ("ROBOT\running.3ds" )
ScaleEntity robot,0.5,0.5,0.5
;radius dlya kollizii
EntityRadius robot, 5
;typ dlya kollizii
EntityType robot,robotType
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
rcam=createpivot(robot)
positionentity rcam,0,60,0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
cam = CreateCamera(rcam)
;radius dlya kollizii
EntityRadius cam,5
;typ dlya kollizii
EntityType cam,cameraType
CameraRange cam,0.01,2000
CameraFogColor cam, 0,128,255 *
CameraFogRange cam, 1,1000 *
PositionEntity cam, 0, 15, 120
;RotateEntity cam, 0, 5, 11
cub=CreateCube()
PositionEntity cub,30,5,10
cone=CreateCube()
PositionEntity cone,5,5,10
;bol'shoy kubik
cub3=CreateCube()
ScaleEntity cub3 ,10, 10, 10
PositionEntity cub3,20,5,-30
;typ dlya kollizii
EntityType cub3,boxType
;ystanovka pickov, eto dlya proverki pryamoy vidimosti
EntityPickMode cub,3
EntityPickMode cone,3
EntityPickMode cub3,2
EntityPickMode level,2
;ystanovka kolliziy
Collisions robotType,levelType,2, 3
Collisions robotType,boxType,2, 2
Collisions cameraType,levelType,2, 3
Collisions cameraType,boxType,2, 2
Repeat
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;povorot kamery na robota
PointEntity cam,rcam
angy#=MouseYSpeed()*0.002
TranslateEntity cam ,0,angy, 0
angx#=-MouseXSpeed()*0.5
TurnEntity robot,0,angx,0
angz#=MouseZSpeed()
MoveEntity cam,0,0,angz
MoveMouse GraphicsWidth()*0.5, GraphicsHeight()*0.5
;dvigaem kamery
If KeyDown(44) Then TranslateEntity cam,0,-0.5,0
If KeyDown(45) Then TranslateEntity cam,0,0.5,0
If KeyDown (46) Then MoveEntity cam,0,0,-1
If KeyDown(47) Then MoveEntity cam,0,0,1
;dvigaem robota
If KeyDown(208) Then MoveEntity robot,0,0,1
If KeyDown (200) Then MoveEntity robot,0,0,-1
If KeyDown (203) Then TurnEntity robot,0,1,0
If KeyDown (205) Then TurnEntity robot,0,-1,0
If KeyDown(17)
MoveEntity robot,0,0,-1
If KeyDown(17) If AnimSeq(robot)=0 Then Animate robot, 1, 0.5, 1, 10
Else
If AnimSeq(robot)=1 Then Animate robot, 2, 1, 0, 10
EndIf
If KeyDown(1) Then Exit
UpdateWorld
RenderWorld
;-----------------------------------------------------------------------------------------------
If EntityInView(cone,cam) And LinePick(EntityX(cam,True),EntityY(cam,True),EntityZ(cam,True),EntityX(cone)-EntityX(cam,True),EntityY(cone)-EntityY(cam,True),EntityZ(cone)-EntityZ(cam,True))=cone
;esli blize 100, to pishem imya
If (EntityDistance (robot,cone)<100)
*CameraProject(cam,EntityX(cone),EntityY(cone),EntityZ(cone))
*Color 0, 0, 128 :Text ProjectedX#(),ProjectedY#(),"Bordos",1
EndIf
End If *
;====================================================
If EntityInView(cub,cam) And LinePick(EntityX(cam,True),EntityY(cam,True),EntityZ(cam,True),EntityX(cub)-EntityX(cam,True),EntityY(cub)-EntityY(cam,True),EntityZ(cub)-EntityZ(cam,True))=cub
;esli blize 100, to pishem imya
If (EntityDistance (robot,cub)<100)
*CameraProject(cam,EntityX(cub),EntityY(cub),EntityZ(cub))
*Color 0, 208, 0:Text ProjectedX#(),ProjectedY#(),"Wiliams",1
EndIf
EndIf *
;===================================================== *
;gravitaciya
TranslateEntity robot,0,-1,0
Flip
Forever
End
на счет вперед-назад юзай команду RotateMesh и поворачивай на 180 градусов (скорее всего по оси Y)... (RotateMesh поворачивает информацию о расположении точек и плоскостей объекта, на угол положения самого объекта это не повлияет)
__________________
Как минимум я помог многим (с)
|
(Offline)
|
|
03.10.2005, 16:31
|
#63
|
Бывалый
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений (для 3 пользователей)
|
За всё написанное СПАСИБО, но EntityMesh тоже не помогло. Значит в редакторе 3Д переделовать прейдётся?
|
(Offline)
|
|
03.10.2005, 16:44
|
#64
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Originally posted by xxxKRIKxxx@Oct 3 2005, 02:31 PM
За всё написанное СПАСИБО, но EntityMesh тоже не помогло. Значит в редакторе 3Д переделовать прейдётся?
|
RotateMesh !
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
03.10.2005, 17:03
|
#65
|
Бывалый
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений (для 3 пользователей)
|
Смысле я имел ввиду RotateMesh
|
(Offline)
|
|
03.10.2005, 17:29
|
#66
|
Администратор
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений (для 996 пользователей)
|
Originally posted by xxxKRIKxxx@Oct 3 2005, 02:31 PM
За всё написанное СПАСИБО, но EntityMesh тоже не помогло. Значит в редакторе 3Д переделовать прейдётся?
|
как так не помогло??? это все-равно, что ты в редакторе вовернешь... значит гдето еще стоит мож rotateentity или еще чего, что поворачивает объект... а то получится так, что в редакторе повернешь, а ничего не произошло...
убери все ентити-повороты, и попробуй меш покрутить, как повернешь, потом постепенно добавляй опять все повороты ентити в мире...
__________________
Как минимум я помог многим (с)
|
(Offline)
|
|
03.10.2005, 17:44
|
#67
|
Бывалый
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений (для 3 пользователей)
|
убери все ентити-повороты, и попробуй меш покрутить, как повернешь, потом постепенно добавляй опять все повороты ентити в мире...
|
Ну я надеюсь что это точно должно помочь!
|
(Offline)
|
|
03.10.2005, 18:09
|
#68
|
Администратор
Регистрация: 03.09.2005
Сообщений: 2,408
Написано 301 полезных сообщений (для 996 пользователей)
|
Originally posted by xxxKRIKxxx@Oct 3 2005, 03:44 PM
убери все ентити-повороты, и попробуй меш покрутить, как повернешь, потом постепенно добавляй опять все повороты ентити в мире...
|
Ну я надеюсь что это точно должно помочь!
|
оно всегда помогает, если какаянить ошибка в программе и не знаешь как ее исправить, то начинаешь комментировать учатски программы которые могут иметь дело с этой ошибкой но которые ты уверен, что работают правильно... и после каждого комментария запускаешь программу и смотришь, если ошибка осталась, то еще не дошел до нее, если пропала, значит ты ее только-что закомментировал..
__________________
Как минимум я помог многим (с)
|
(Offline)
|
|
03.10.2005, 18:59
|
#69
|
Бывалый
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений (для 3 пользователей)
|
Ура!Свершилось! Я нашёл как исправитьэту проблему. Это был самый простой вариант - повернуть модель в 3Д максе на 180 градусов. Больше кроме этого у меня ни как не получилось!.
|
(Offline)
|
|
05.10.2005, 15:09
|
#70
|
Бывалый
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений (для 3 пользователей)
|
Есть ещё 1 вопросик. В этом коде у меня есть робот. Когда робот отходит назад, и с зади робота есть какой-то предмет, то камера как и должна по коду не проходит сквозь кубик и остаётся на месте, НО когда робот начинает идти вперёд камера остаётся на том же самом месте, что и после взаимодействия кубика с камерой, Я ЖЕ ХОЧУ, ЧТОБЫ КОГДА РОБОТ НАЧИНАЛ ИДТИ ВПЕРЁД КАМЕРА СТАНОВИЛАСЬ НА ТОЖЕ МЕСТО ГДЕ И СТОЯЛА ДО ВЗАИМОДЕЙСТВИЯ. Чтоб вам было понятней, попробуйте в этом же коде куб3 увеличить в размерах, а потом подойти к нему задом. (НА СТРЕЛОЧКАХ).
|
(Offline)
|
|
07.10.2005, 04:19
|
#71
|
Бывалый
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений (для 3 пользователей)
|
Люди помогите пожалуста! :'((
|
(Offline)
|
|
09.10.2005, 09:53
|
#72
|
Бывалый
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений (для 3 пользователей)
|
МММ, так мне не кто и не помог в этом деле, но я нашёл пример где камера такая, как мне нужна, но там управление под клавой и я не знаю чё надо вырезать из этого кода в мой, чтоб камера у меня в примере была такая же.
Ну вот код. Что надо вырезать от туда чтоб у меня в коде камера была такая же???
|
(Offline)
|
|
09.10.2005, 10:54
|
#73
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
[FLOOD]
2Diplomat: Поручик Ржевский, молчать!
2All: Обратите внимание, а я до сих пор молчу...
2xxxKRIKxxx: RTFI + CD&DooM-i
P.S. Админы, сорри! Не сдержался.
[/FLOOD]
|
(Offline)
|
|
09.10.2005, 15:17
|
#74
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Я только вчера прочитал эту тему. Не хотелось придумывать новые функции, так что просто взял камеру из стандартной библиотеки примеров Biltz'а (Blitz3D\Samples\Blitz 3D Samples\MAK\CASTLE\CASTLE.B и переделал твой код под эту камеру.
Совет: Не загромождай основной цикл. Я разделил твою программы на несколько частей. Так код легче читается.
|
(Offline)
|
|
09.10.2005, 16:09
|
#75
|
Бывалый
Регистрация: 19.09.2005
Сообщений: 649
Написано 3 полезных сообщений (для 3 пользователей)
|
Ну хоть 1 человек ответил нормально! Всё принципе ну ОЧЕНЬ ХОРОШО (конечно код с помощью функций я буду разбирать целую неделю чё с чем взаймидействует), но у меня ну совсем маленький вопрос Почему вверх и вниз камера не двигается?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:00.
|