Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.04.2012, 12:24
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 1  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
По умолчанию скорость проигрывание анимации

в общем у меня есть анимация персонажа на таймере... я хочу чтобы скорость проигрывания анимации зависела от скорости бега. Первое что пришло в голову - это задавать таймеру задержку, в зависимости от длины вектора скорости. Но через 3-5 секунд у таймера перестает срабатывать таймерИвент... как сделать по другому или так чтобы таймер не "ломался"?

Старый 10.04.2012, 13:03
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 2  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
задавать таймеру задержку, в зависимости от длины вектора скорости
Ниче не понял
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 10.04.2012, 13:06
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 3  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Проще слушать событие Event.ENTER_FRAME и считатать кадры. Если скорость бега такая-то, значит мы должны переключать кадр анимации раз в столько-то событий ENTER_FRAME.
__________________
...вселенская грусть

Старый 10.04.2012, 13:09
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 4  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
Цитата:
Сообщение от Dukobpa3 Посмотреть сообщение
Ниче не понял
Код AS3:
timer.delay = k / velocity.length

Старый 10.04.2012, 13:12
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 5  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
timer.delay = k / velocity.length
Спасибо кеп, элементарную математику понимаю, а что такое "длина вектора скорости"?
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 10.04.2012, 13:14
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 6  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
velocity.length - это длина вектора скорости... человечек бежит с определенной скоростью, длина вектора скорости = это расстояние которое он пробежит за момент времени

Старый 10.04.2012, 13:19
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 7  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Посмотри любой твинер, как там сделано.
Поидее таки лучше делать по ентерфрейму, а таймером мерять задержку после предыдущего кадра, и расчитывать исходя из этой задержки на какое расстояние он сместится в этом кадре.
Т.е. твой вариант с точностью до наоборот.

Тупо по таймеру не получится так как флешка все-равно работает по кадрам, и если таймер срабатывает между кадрами или же интервал таймера меньше одного-двух кадров - то будут косяки. Таймером можно пользоваться если задержка в районе 100-1000 мс(10-1 тик в секунду), у меня обычно нету таймеров меньше 100 мс, чаще всего вообще только секундные.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 10.04.2012, 13:22
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 8  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
с таймером классно работает до тех пор пока я не начинаю менять delay каждую секунду, потом что-то нарушается

Старый 10.04.2012, 13:25
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 9  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Ну ты сам всё знаешь, зачем тогда спрашивать.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 10.04.2012, 13:29
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 10  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
Дело в том что события таймера всё равно привязаны к общей частоте кадров. Вы не сможете перерисовать человечка посередине кадра. Поэтому лучшим решением будет сидеть на EnterFrame и мерять время по getTimer(). Время мерять надо потому что на разных компах и разной нагрузке некоторые кадры могут рендериться дольше чем обычно. И как только вы видите что подошло время нарисовать следующий кадр вы его переключаете.
__________________
:)

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.