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

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

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

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

Ответ
 
Опции темы
Старый 26.05.2009, 14:40   #1
karry
Нуждающийся
 
Регистрация: 19.05.2009
Сообщений: 82
Написано 8 полезных сообщений
(для 10 пользователей)
Залоченная камера

Сделал плавную камеру следующую за юнитом. При нажатии на кнопочку cam_lock происходит вот это :

Function CamLock(target)
		camdyaw#=DeltaYaw#(campv,target)
		camdpitch#=DeltaPitch#(mainCam,target)
		TurnEntity campv,0,camdyaw#/10,0	
		TurnEntity mainCam,camdpitch/10,0,0
		
		camdis#=Sqr(Pow(EntityX(campv)-EntityX(unit01\pivot))+Pow(EntityZ(campv)-EntityZ(unit01\pivot)))
		If camdis>80 Then 
			MoveEntity campv,0,0,1
		Else If camdis<30 Then
			MoveEntity campv,0,0,-1
		Else If camdis>75 And camdis<=80 Then
			MoveEntity campv,0,0,.1
		EndIf
End Function
Собственно проблема в том что если я перемещаю только камеру - всё идеально и плавно. А если перемещать сам юнит за которым должна следовать камера - камера перемещается заметными рывками.
Чего не хотелось бы.
(Offline)
 
Ответить с цитированием
Старый 26.05.2009, 15:02   #2
karry
Нуждающийся
 
Регистрация: 19.05.2009
Сообщений: 82
Написано 8 полезных сообщений
(для 10 пользователей)
Ответ: Залоченная камера

Хм, вроде сделал, изменил строчку
If camdis>80 Then 
			MoveEntity campv,0,0,1
на
If camdis>80 Then 
			MoveEntity campv,0,0,camdis/300
(Offline)
 
Ответить с цитированием
Старый 26.05.2009, 15:05   #3
Sleepybear
ПроЭктировщик
 
Аватар для Sleepybear
 
Регистрация: 13.02.2009
Сообщений: 134
Написано 21 полезных сообщений
(для 22 пользователей)
Ответ: Залоченная камера

У тебя вид от 3-его лица?
(Offline)
 
Ответить с цитированием
Старый 26.05.2009, 15:25   #4
karry
Нуждающийся
 
Регистрация: 19.05.2009
Сообщений: 82
Написано 8 полезных сообщений
(для 10 пользователей)
Ответ: Залоченная камера

Ага. Делаю TBS.
(Offline)
 
Ответить с цитированием
Старый 26.05.2009, 16:40   #5
Sleepybear
ПроЭктировщик
 
Аватар для Sleepybear
 
Регистрация: 13.02.2009
Сообщений: 134
Написано 21 полезных сообщений
(для 22 пользователей)
Ответ: Залоченная камера

помоему проще было- бы

а вместо лабудистики с корнем и дельтой углов

поставить пивот позади юнита

camera =createcamera()

User=createUser()
pivot=createpivot(User )
positionentity pivot ,0,3,-5

потом

camspeed= (скорость камеры скажем 10)

curX#=EntityX(Camera, True
destX#=EntityX(pivot,True)
x#=((destX#-curX#)/camspeed)

TranslateEntity Camera,x,y,z
PointEntity Camera, User

соответственно y и z сдать также и будет тебе счастье
(Offline)
 
Ответить с цитированием
Старый 26.05.2009, 17:09   #6
karry
Нуждающийся
 
Регистрация: 19.05.2009
Сообщений: 82
Написано 8 полезных сообщений
(для 10 пользователей)
Ответ: Залоченная камера

Проще, но не отвечает поставленным задачам. Говорю же, TBS, а не TPS.
Кроме того, у тебя получается длина вектора, а эта лабудистика с корнем находит длину проекции вектора на плоскость, чтобы допустим, можно было смотреть на юнит сверху с достаточного расстояния.

А дельта нужна потому, что я не могу сделать Pointentity, собьются оси камеры. С дельтой я могу поднимать камеру вертикально вверх не теряя юнит из вида.
(Offline)
 
Ответить с цитированием
Старый 26.05.2009, 17:19   #7
MiXaeL
Бывалый
 
Аватар для MiXaeL
 
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений
(для 267 пользователей)
Ответ: Залоченная камера

я не могу сделать Pointentity, собьются оси камеры.
Но ведь всегда можно сдвигать и поворачивать объект в глобальных осях. Впрочем, делай так, как самому удобнее.
(Offline)
 
Ответить с цитированием
Старый 26.05.2009, 17:22   #8
Sleepybear
ПроЭктировщик
 
Аватар для Sleepybear
 
Регистрация: 13.02.2009
Сообщений: 134
Написано 21 полезных сообщений
(для 22 пользователей)
Ответ: Залоченная камера

Сори, но походу я не совсем понял тебя.
(Offline)
 
Ответить с цитированием
Старый 26.05.2009, 17:34   #9
karry
Нуждающийся
 
Регистрация: 19.05.2009
Сообщений: 82
Написано 8 полезных сообщений
(для 10 пользователей)
Ответ: Залоченная камера

Но ведь всегда можно сдвигать и поворачивать объект в глобальных осях.
А она и поворачивается в глобальных. И сдвигается тоже, но только по Y. Наверное можно сделать локальный стрейф камеры в глобальных координатах, но подозреваю что это будет намного больший геморрой.
А так имею полный контроль над камерой всего в 10 клавиш. Повороты влево-вправо, вверх-вниз с сохранением ориентации движения, стрейф, горизонтальное и вертикальное движение.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Web камера Randomize Модули для BlitzMax 0 25.09.2009 13:17
Камера... ken park 3D-программирование 85 04.07.2009 01:30
Камера Fatalix3d 3D-программирование 2 28.12.2008 15:17
Камера и Mesh JeSss 3D-программирование 15 29.01.2008 21:00
Камера smaller 3D-программирование 14 05.04.2007 23:58


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


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