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

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

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

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

Ответ
 
Опции темы
Старый 10.01.2008, 02:32   #1
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Смущение Ограничение преремещения объекта областью видимости камеры

В общем проблема выглядит следующим образом. В редкие свободные минуты пишу небольшую игру. Управляем вертолетом. Перемещатся можно только "по экрану". Тоесть камера не перемещается, перемещается только вертолет (дальше ентити). Нужно сделать так, что бы ентити не мог выходить за область видимости камеры. Проще говоря нужно что бы нельзя было вылетать за края экрана. Если вид сверху, то сделать это элементарно, но когда вид от 3 лица (рис. 1), то это уже становится проблемнее. Если просто задать крайние точки как при виде сверху, то играть не очень интересно, ибо когда ентити находится в нижнем правом углу экрана, то это действительно крайняя точка Х, но если ентити в верхнем краю экрана, то крайняя точка Х уже совсем другая (рис. 2, 3).

Думал сделать невидимые стены, но этот вариант не катит.
Имхо Нужна какая-то формула для вычисления крайней точки Х в зависимости от Z.

Может у кого-то уже есть наработки по этому поводу. Как можно реализовать "это" ?
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 950
Размер:	92.0 Кб
ID:	4180  Нажмите на изображение для увеличения
Название: 2.JPG
Просмотров: 905
Размер:	97.2 Кб
ID:	4181  Нажмите на изображение для увеличения
Название: 3.JPG
Просмотров: 918
Размер:	98.7 Кб
ID:	4182  
(Offline)
 
Ответить с цитированием
Старый 10.01.2008, 03:10   #2
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Ограничение преремещения объекта областью видимости камеры

CameraProject cam,EntityX(entity),EntityY(entity),EntityZ(entity)
x=ProjectedX()
y=ProjectedY()

If x<10 
  ...
EndIf
If x>GraphicsWidth()-10
...
EndIf
If y<10 
  ...
EndIf
If y>GraphicsHeight()-10
...
EndIf
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Raiter (10.01.2008)
Старый 10.01.2008, 03:27   #3
FrankH
Разработчик
 
Регистрация: 09.12.2007
Сообщений: 376
Написано 83 полезных сообщений
(для 122 пользователей)
Re: Ограничение преремещения объекта областью видимости камеры

Х1L - координата ограничения нижняя-левая
Х1R - координата нижняя-правая
Х2L - координата верхняя-левая
Ymax - длина пути по вертикали (вперед)
Y - позиция обьекта по вертикали
X - позиция обьекта по горизонтали
DX=X1L-X2L - максимальное отклонение по иксу(с одной стороны)
Xo=DX /Ymax - отношение максимального отклонения к вертикальной координате
теперь в цикле:
XL=X1L-Y*Xo - отнимаем от левой координаты отношение соответственно У
XR=X1R+Y*Xo - прибавляем к правому ограничителю отношение к У
IF (KeyDown(LEFT)) And (X>XL) тогда двигаемся влево
IF (KeyDown(RIGHT)) And (X<XR) тогда двигаемся вправо
вот и все, должно работать при условии что камера смотрит четко вперед, т.е. углы ограничения зрения по сторонам одинаковы, хотя придумал на лету, потому мог где-то затупить..
tormoz опередил более простым вариантом
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ограничение мышки по вертикали KingMaks Blitz3D 15 02.01.2010 21:17
Подсчет и ограничение символов в Input() ArtemkA 2D-программирование 8 24.07.2009 02:37
Ограничение наклона камеры в FPS Maxxx.!!!. 3D-программирование 21 28.12.2007 01:01
Проблемка. Не срабатывает ограничение 0.о Raiter 2D-программирование 2 27.10.2007 12:14
Ограничение по координатам Valet 2D-программирование 8 27.08.2007 23:45


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


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