P@S@f | Дата: Вторник, 02 Декабря 2008, 23:28 | Сообщение # 1 |
Начинающий
Группа: Пользователи
Сообщений: 3
Награды: 0
Замечания: 0%
Статус:
| Что я хочу сделать: Свободно-привязанный вид. То-бишь что бы камера могла свободно двигаться вокруг объекта по полу-сферической траектории(не знаю правильно-ли выразился ), то-есть не проходила сквозь террейн. Что я уже сделал: Всё, кроме коллизии с террейном, вернее я её сделал, но получаю нежелательный результат. Код: Code Graphics3D 1280,1024,32,1 SetBuffer BackBuffer() Const player=1,pol=2,camera=3 marsohod=LoadMesh("marsohod.3ds") center=CreatePivot(marsohod); Создал точку слежения камеры, прицепил ее к марсоходу. cam=CreateCamera(center); Создал камеру, заставил ее следить за точкой слежения. light=CreateLight() mars=CreateTerrain(1024) marsmap=LoadTexture("marsmap_2500x1250.jpg") ScaleTexture marsmap,2500,1250 EntityTexture mars,marsmap RotateEntity light,90,0,0 PositionEntity cam,0,20,-50 PositionEntity mars,0,-1,0 EntityColor marsohod,111,90,59 EntityType marsohod,player EntityType mars,pol EntityType cam,camera Collisions player,pol,2,2 Collisions camera,pol,2,2 Repeat TurnEntity center,MouseYSpeed(),0,0 TurnEntity center,0,-MouseXSpeed(),0,True MoveMouse GraphicsWidth()*0.5,GraphicsHeight()*0.5 If Not KeyDown(1) MoveEntity marsohod,0,-.5,0 If KeyDown(200) MoveEntity marsohod,0,0,1 If KeyDown(208) MoveEntity marsohod,0,0,-1 If KeyDown(203) TurnEntity marsohod,0,2,0 If KeyDown(205) TurnEntity marsohod,0,-2,0 UpdateWorld RenderWorld Flip Until KeyHit(1) End Что не получилось: При коллизии камеры с террейном, она продолжает поворачиваться по оси X вместе с точкой слежения, то-есть камера, в принципе, остается на месте, но продолжает поворачиваться и когда ее поднимаешь по оси Y видишь такую лабуду, что кажется камера перестала быть связана с точкой слежения. Вот что происходит: http://pasaf.narod.ru/files/camera.wmv (200 кб) Собственно, вопрос: Каким образом можно ограничить движение камеры, так что бы она не проходила сквозь террейн, или как сделать так, что бы при коллизии с террейном камера переставала поворачиваться по оси X(пробовал ограничивать угол поворота - не катит, хотя хз может криво ограничивал)? Товарищи, пожалуйста, помогите!
Сообщение отредактировал P@S@f - Вторник, 02 Декабря 2008, 23:50 |
|
| |
Прохожий | Дата: Среда, 03 Декабря 2008, 02:02 | Сообщение # 2 |
Группа: Гости
| P@S@f, А ты просто ставь камеру после коллизии и смещения , на её предидущее местоположение, проверь если нет коллизиии с терраином, то PositionEntity cam,0,20,-50, ставишь назад по её локальным координатам.хотя тоже не выход.
|
|
| |
P@S@f | Дата: Среда, 03 Декабря 2008, 19:05 | Сообщение # 3 |
Начинающий
Группа: Пользователи
Сообщений: 3
Награды: 0
Замечания: 0%
Статус:
| На сколько я понимаю, мне нужно что бы при коллизии камеры с террейном переставал вращаться пивот(точка слежения) по оси Х. Так вот каким образом это можно осуществить?
|
|
| |