![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 8
|
В целях изучения as пишу небольшую игру, и у меня встала задача о "плавной" анимации. То есть мне хотелось бы добиться наибольшей частоты кадров для более приятного восприятие игры глазом. На сколько я заметил в трехмерные игры наиболее комфортно играть с частотой от 60 кадров в секунду. Если играть например в какую-нибудь CS1.6 с частотой кадров при которых просматривают фильмы ~ 25 кадров в секунду, то в игре это будет сразу заметно и будет доставлять некий дискомфорт.
Допустим я хочу добиться во флеше этих 60 кадров в секунду, соответственно я задаю stage.frameRate = 60 , но от этого не будет пользы если объекты в игре будут двигаться не каждый кадр. Поэтому интервал таймера, по событию которого двигаются объекты, должен быть установлен в 16мс, что примерно даст 60 событий в секунду. Но все это в теории, поскольку мне кажется, что не на всякой машине все объекты успеют переместиться и отрисоваться за 16мс. Так вот, хотелось бы узнать какие использовать оптимальные настройки обновления экрана и игрового таймера, которые подойдут для большинства случаев? |
|
|||||
|
Регистрация: Aug 2010
Адрес: 55.1° с.ш. 82.56° в.д.
Сообщений: 25
|
Есть кстати вариант обновлять кадры только после окончания рендеринга каждого из них, тогда скорость воспроизведения будет зависеть от нагруженности флешки и оптимальности его кода, но анимация может иногда ускоряться или замедляться, в зависимости от использования флешем ресурсов машины.
В сети есть много решений с динамическим изменением fps. Ссылок не дам, специально их не искал, но раньше несколько раз натыкался на такую инфу. |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 8
|
Мда и всетаки при перемещении объекта из одной части экрана в другую замечаю что он иногда двигается с еле заметными рывками, но очень раздражающими. Хотя может быть я просто избалован DirectX'ом... Насчет обновления объектов после окончания рендеринга кадра - частота кадров на разных машинах может быть не одинаковой, а скорость анимации должна быть на всех одной и той же. Поэтому придется расчитывать движения объектов исходя из времени прошедшим между сменой кадров, а это на порядок усложнит алгоритмы анимации объектов.
|
|
|||||
|
Регистрация: Aug 2010
Адрес: 55.1° с.ш. 82.56° в.д.
Сообщений: 25
|
Насчет усложнения алгоритмов согласен, но иногда это того стоит))
|
|
|||||
|
Смена кадров в любом случае будет происходить и все видимые объекты сцены будут отрисовываться. В плане оптимизации важно, чтоб все объекты отрисовывались одновременно, для этого есть ряд методов (с ростом версии флешплеера их больше). С точки зрения структуры наверное было бы лучше создать отдельный класс, который бы "заведовал" отрисовкой.
В отношении разных можностей компьютеров думаю не стоит придумывать суперсложные алгоритмы - это может замедлить работу. Просто ориентируйтесь на некий минимальный уровень, на определенное значение фпс, при котором будет комфортно пользоваться приложением. А методика подъема фпс к хорошему не приведет. С другой стороны если приложение не будет успевать просчитать или визуализировать данные, то фпс упадет автоматически.
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
|
Lorem ipsum
|
Цитата:
смысл? науке это доподлинно неизвестно.
__________________
Поймай яблоко 2! |
|
|||||
|
31 ставят т.к. есть мнение что по (опять же) загадочным причинам это быстрее. ИМХО бред. А по стандартам кинематографа (одному из) - все-таки 30. Кто-то ощущал разницу между 30 и даже 33?
in4core, почему 33? Лень до нуля тянуться? ![]() Zebestov, хотел написать про 31, но было лениво объяснять причину необъяснимого. Все-таки пришлось... ![]()
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|