|
16.04.2010, 14:16
|
#1
|
Разработчик
Регистрация: 02.06.2009
Адрес: Город Герой Ленинград
Сообщений: 392
Написано 33 полезных сообщений (для 74 пользователей)
|
Замедление времени...
Смотрел тут... Ниже тема похожая, но конкретно как всегда никто не сказал . Так вот всё таки как этого добиться средствами Блитза .
Можно конечно все переменные отвечающие за анимацию , за скорости передвижения и т. д. в определённый момент понизить(можно FPS сократить, но это если хочешь достичь эффекта тормознутости ) , но согласитесь глупо.
И тут же опять вопрос : опять же ,как СРЕДСТВАМИ БЛИТЗА сделать так , стобы на переднем плане отчётливо виднелся игрок(или оружие) , а остальное размыто виднелось.
PS Если кодом можете это представить , то буду очень благодарен...
__________________
Самый первый и самый великий программист - это Бог.
|
(Offline)
|
|
16.04.2010, 14:57
|
#2
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Замедление времени...
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 200 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.
|
Копипастер детектед.
__________________
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
|
|
23.05.2010, 18:36
|
#3
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: Замедление времени...
Сообщение от Ganociy
Можно конечно все переменные отвечающие за анимацию , за скорости передвижения и т. д. в определённый момент понизить(можно FPS сократить, но это если хочешь достичь эффекта тормознутости ) , но согласитесь глупо.
|
Не соглашусь. Сделал этим методом, все прекрасно работает. Другого выхода не вижу. К тому же в этом случае ты можешь сам контролировать, какие процессы замедлять, а какие оставлять неизменными или даже ускорять. А средствами блитца можно только 1) замедлить анимацию моделей 2) снизить количество обрабатываемых циклов в секунду, но это, как было верно замечено, тупо снизит количество фпс, что будет заметро невооруженным глазом.
И кстати, читал ты невнимательно другие темы по этому вопросу - понижать ВСЕ переменные в нужный момент тебе и не нужно, тебе надо всем переменным отвечающим за скорость добавить переменную множитель, которая в обычном режиме равна 1, что значит все процессы протекают с нужной скоростью. Стоит тебе присвоить этой переменной значение 0.5 как все нужные процессы в игре замедлятся в 2 раза.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.05.2010, 20:35
|
#4
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Замедление времени...
Делаеца просто. В начале цЫкла:
oldFps=millisecs()
//конец цикла
deltaFps=millisecs()-OldFps
if DeltaFps=0 then DeltaFps=1
FPS=1000/deltafps
GAME_SPEED_K#=float 60/Fps
//Вот теперь мы имеем коэффициент тормознутости системы
//На него умножаем все счетчики и перемещения обэктов
//а если нужно замедлить игру...
GAME_SPEED_K#=GAME_SPEED_K#*Speed_K#
Speed_K#=Speed_K#-.05
Voila, C'est tres simple
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.10.2010, 17:24
|
#5
|
Разработчик
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений (для 92 пользователей)
|
Ответ: Замедление времени...
хорошо, а как быть с физикой? число рендера pxRenderPhysic(Speed*DeltaTime) чтоли? где Speed = 30 а DT = 1 получится что время обновления физики замедлится только?))
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb
Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)
Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
|
(Offline)
|
|
23.10.2010, 20:11
|
#6
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Замедление времени...
я скоко не парился с враппером физыкса, так и не смог его нормально замедлять) да в общем вообще держать скорость физики стабильной.
|
(Offline)
|
|
23.10.2010, 20:34
|
#7
|
Разработчик
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений (для 92 пользователей)
|
Ответ: Замедление времени...
ну я в общем попробовал сделать у себя так:
xGraphics3D 1024,768,32,False,False
xSetBuffer xBackBuffer()
pxCreateWorld (1,"вротмненоги")
pxSetGravity 0,-9.8,0
пишем переменную для нашего замедлителя (DeltaTime#)
и снизу сразу же пишем переменную скорости обновления физки( мне лично так удобнее)
Global DeltaTime# = 1
Global PhysXSpeed# = 30
While Not xKeyHit(KEY_ESCAPE)
сдесь как раз пропписываем нашу фишку, деля скорость физики на замедлитель
pxRenderPhysic(PhysXSpeed#/DeltaTime#,0)
не забываем воткнуть обновление функции))
xUpdateDeltaTime()
xUpdateWorld
xRenderWorld
xFlip
Wend
End
Пишем функцию обновления нашего "замедлителя"
Function xUpdateDeltaTime()
If xKeyDown(42) Then
DeltaTime# = DeltaTime# - 0.05
Else
DeltaTime# = DeltaTime# + 0.03
End If
If DeltaTime# >=1 Then DeltaTime# = 1
If DeltaTime# <=0.1 Then DeltaTime# = 0.1
End Function
тоесть получается что если мы нажимаем кнопку (пусть это будет 42 - левый Shift) то у нас переменная DeltaTime# от еденицы сводится к ее десятой части - 0.1 и у нас получается что все плавно замедляется))
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb
Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)
Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
|
(Offline)
|
|
24.10.2010, 10:27
|
#8
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: Замедление времени...
Насколько я помню, pxRenderPhysics(x) будет стремиться к ускорению рендера физики, при X->0, => нам нужно из Y (Где У - коэффициент замедления времени) выразить функцию, стремящуюся к бесконечности, при X -> 0, а функция эта такова:
X=60/Y
Доказательство.
Пусть Y=1, тогда Х=60/1 = 60, т.е. нормальный рендер физики
Положим Y=0.5, тогда X=60/0.5 = 120, т.е. в два раза замедленный рендер физики .
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
24.10.2010, 14:26
|
#9
|
Разработчик
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений (для 92 пользователей)
|
Ответ: Замедление времени...
Гениально, Ватсон! похоже ты только что обьяснил как работает мой код)))
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb
Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)
Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:19.
|