![]() |
|
||||||||||
|
|||||
|
согласен полностью
|
|
|||||
|
Регистрация: Apr 2001
Адрес: San Pietroburgo
Сообщений: 1,408
|
2 Штрек
Цитата:
![]()
__________________
I denti non possono dire niente... senza la lingua... Perche' la tua lingua e' mia! |
|
|||||
|
Регистрация: Apr 2004
Адрес: macromedia—adobe Любит: Flash MX
Сообщений: 2,860
|
2 D12:
Сжатая_ZIP_Папка рулит, привет, за что у тебя плюсики то опять? А вообще я люблю onEnterFrame, потому что я тупой и альтернативных путей не знаю!!!
__________________
маска лошади и коня в россии и снг с бесплатной доставкой gimmethevape вейпы и поды доставка |
|
|||||
|
Регистрация: Jun 2005
Адрес: Н.Новгород
Сообщений: 107
|
Так все таки если для задачи все равно, что юзать onenterframe или setinterval?
|
|
|||||
|
Регистрация: Apr 2004
Адрес: macromedia—adobe Любит: Flash MX
Сообщений: 2,860
|
Цитата:
![]()
__________________
маска лошади и коня в россии и снг с бесплатной доставкой gimmethevape вейпы и поды доставка |
|
|||||
|
Регистрация: Apr 2001
Адрес: San Pietroburgo
Сообщений: 1,408
|
что пишет хелп:
Цитата:
а вот по поводу загрузки проца (а это, согласитесь, основная проблема) - думаецца мне, что интервал потяжелее будет. хотя надо проверять а по-хорошему, я не очень понимаю, как эти 2 функции перескаюцца. ведь там, где нам нужно именно событие на каждый фрейм (например, покадровое проигрывание анимации) - логично использовать onEnterFrame. а там, где нам нужен временной интервал > один кадр - логично использовать setInterval (нежели на onEnterFrame расставлять проверки, счетчики и условия всякие) ![]()
__________________
I denti non possono dire niente... senza la lingua... Perche' la tua lingua e' mia! |
|
|||||
|
Интервал(ы) удобно использовать тогда, когда необходим точный просчет изменений положения объекта. Например, в играх. Представим такую ситуацию - вылетает пуля, и она, врезавшись в тот или иной предмет, должна исчезнуть. Пуля, понятное дело, летит быстро. Как проверять совпадение и двигать пулю? Вариант 1. Юзать onEnterFrame. В этом случае у нас может возникнуть ситуация, когда смещение пули будет превышать хотя бы 10 пикселов - возможна такая фигня - пулька пролетит "насквозь" объекта, чья толщина менее 10 пикселов. Вариант 2. Юзать интервал (очень быстрый интервал, этак 1-10 миллисекунд) и большой fps. Тогда можно просчитывать совпадения каждые 1-10 миллисекунд и двигать пулю не более чем на пиксел-другой. Но в этом случае более чем два-три таких интервала установить будет нелегко, т.к. проц загружается жестко (при оптимизации других вещей, того же выявления совпадений с помощью раздления экрана на локации).
__________________
За двумя зайцами погонишься - от егеря по морде получишь |
|
|||||
|
а можно просто в момент пуска пули просчитать, врежется она во что-то или нет. и когда. но такой вариант мало где подойдет, поскольку всю игру нужно будет строить совсем по другим принципам.
|
|
|||||
|
Регистрация: Jun 2005
Адрес: Н.Новгород
Сообщений: 107
|
Ну если интервалы от fps не зависят, тогда все понятно.
Всем спасибо. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Цитата:
![]() Только что провел тест на FLASH MX, 2004 под рукой не было, поэтому не могу сказать как он справится моим тестом (кому не лень, повторите на 2004 и скажите результат). Итак, берем следующих код: u = function () {
cx++;
if (cx == 20) {
clearInterval (id);
for (i = 1; i < arrayID.length; i++) {
trace (arrayID[i] - arrayID[i - 1]);
}
}
arrayID[arrayID.length] = getTimer ();
};
cx = 0;
arrayID = new Array ();
id = setInterval (u, 100);
Результат:138,102,100,102,118,100,100,100,100,100,100,100,100,100,100,100,100,100 в начале завал, но потом все верно fps=6 108,109,113,112,111,113,112,111,113,112,113,111,111,113,112,111,113,112 погрешность в 11-12%, не очень хорошо fps=7 109,107,111,112,112,112,112,112,112,112,112,112,111,113,112,111,113,112 тоже самое а теперь поставте fps 11 или 12 164,172,175,177,176,176,176,176,176,176,176,176,178,174,176,176,176,176 ????? Последний раз редактировалось iNils; 28.01.2008 в 06:01. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|