![]() |
Плавное перемещение камеры
Здрасьте, вот такой у меня гемор-
Вообщем сделал я карту своего города...увидел как-то карту Кировска от Chuma и захотел такую-же сотворить, но лучше...:-D Все нормально вроде сделал...и модельки и свет и фог...даже меню набросал...камера плавно летает...вообщем красотища!..Ах да - трабл такой : Как можно сделать так чтобы при нажатии кнопки (например моего меню) камера (которая привязанна к спрятонной коробочке) мягко передвигалась в указанные мною координаты... Вообщем типа так: жму кнопку...камера плавно разворачивается в сторону координат...камера плавненько летит к координатам икс,игрег,зэд... пробовал вот так: If Press_Button(movA) PositionEntity loh,110,0,110 PointEntity loh,NG NG- это бокс который я подвесил над нужной координатой...-но летит эта камера очень быстро и не красиво:''(( P/S кнопка уже есть...:) |
Re: Плавное перемещение камеры
1) пишем вот такую вот функцию
Код:
Function AnimateValue#(in#,ch#,speed#) Global CameraAnimate%,CamAnimX#,CamAnimY#,CamAnimZ# 3) при нажатии на movA просто пишем Код:
if Pres_Button(movA) then Код:
if CameraAnimate = 1 then я думаю анимацию поворота и самому можно доделать аналогично ps2. мой метод жостко кривой, но рабочий :) |
Re: Плавное перемещение камеры
Да, а еще можно воспользоватся вот этой функцией:
Код:
Function CurveValue#(newvalue#,oldvalue#,increments# ) Код:
cur_x = CurveValue#(new_x,old_x, increments) |
Re: Плавное перемещение камеры
вторая более универсальная !! :)
|
Re: Плавное перемещение камеры
H@NON
в твоей функции будет "дребезжание" числа у тебя просто при lim newvalue -> oldvalue получится что (oldvalue#-newvalue#)/increments бесконечно малое и в теории получается что newvalue никогда не достигнет oldvalue :) а на практике из-за погрешностей в етой зоне возможно будет что new_value будет то больше, то меньше old_value :) да и она переносит с разной скоростью |
Re: Плавное перемещение камеры
Да я понимаю это. Я знал что число newvalue не достигнет oldvalue, но так можно добится замедление движения в конце. Это получается сначало почти мгновенный перенос, а потом замедление. У меня не наблюдалось погрешности числа newvalue, да я и не использовал голую функцию, ставил условия, проверку на расстояние как ты описал выше. Вообще лучший вариант это работа с целыми числами;).
|
Re: Плавное перемещение камеры
newvalue не достигнет oldvalue по этому происходит "дребезжание" числа !!
что бы его избежать нужно еще 1 условие поставить при котором newvalue не будет приблежатся к oldvalue !! |
Попрбовал оба варианта...оба хороши, спасибо:super: ...но остановился на первом...вообщем вот ,что получилось:
Код:
|
Re: Плавное перемещение камеры
то есть один раз переместился и всё ??
или в чем трабла ?? |
Re: Плавное перемещение камеры
Цитата:
|
Re: Плавное перемещение камеры
перечитай мой пост
там вот такой вот текст Код:
тут проверяем растояние от камеры до конечной точки Код:
local dist_q# = EntityX(cam)*EntityX(cam)+EntityY(cam)*EntityY(cam)+EntityZ(cam)*EntityZ(cam) |
Re: Плавное перемещение камеры
Ага, просто постявь условие работы перехода камеры если она дальше от цели на некоторое значение.
|
Ок! Все летает..сдвигается...разобрался...вчера пол ночи вчитывался в код...вроде все, примерно понял как работает...а отлипает она от координаты простым щелчком мыши...сам чес.говоря не понял до конца ,почему...наверно тут дело уже в ГУИ...
Всем Спасибо! |
Часовой пояс GMT +4, время: 13:04. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot