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

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.08.2005, 18:34
F_Flash вне форума Посмотреть профиль Отправить личное сообщение для F_Flash Найти все сообщения от F_Flash
  № 111  
Ответить с цитированием
F_Flash
 
Аватар для F_Flash

Регистрация: Feb 2002
Сообщений: 358
Отправить сообщение для F_Flash с помощью ICQ
Цитата:
Сообщение от iNils
если пройтись дебагером то разница в коде будет такая:


13 _push "dist"/*Dic[4]*/, "x2"/*Dic[2]*/
14 _getVariable
15 _push "x1"/*Dic[0]*/
16 _getVariable
17 _subtract
18 _push "x2"/*Dic[2]*/
19 _getVariable
20 _push "x1"/*Dic[0]*/
21 _getVariable
22 _subtract
23 _multiply
24 _push "y2"/*Dic[3]*/
25 _getVariable
26 _push "y1"/*Dic[1]*/
27 _getVariable
28 _subtract
29 _push "y2"/*Dic[3]*/
30 _getVariable
31 _push "y1"/*Dic[1]*/
32 _getVariable
33 _subtract

как видите хотя операции разные, их количество одинаково


2KidsKilla вот прекрасный пример показывает то что одинаковые скобки флеш не ищет а считает все тупо и последовательно не анализируя выражение.

2iNils да, на создание переменной больше вренеи тратится чем на substract

Старый 12.08.2005, 18:37
F_Flash вне форума Посмотреть профиль Отправить личное сообщение для F_Flash Найти все сообщения от F_Flash
  № 112  
Ответить с цитированием
F_Flash
 
Аватар для F_Flash

Регистрация: Feb 2002
Сообщений: 358
Отправить сообщение для F_Flash с помощью ICQ
Цитата:
Сообщение от iNils
перед тем как спросить с чего вы взяли я это и сделал. результат был такой: через раз, когда первый быстрее когда второй.

и кстати, не корректно первую функцию 10000 запускать, а вторую 80000
смысл в том что вторая всегда будет показывать разницу в одну сторону а первая вриьируется на незначительно, это еще может и влиять паралленьный програмы запущенные.


Последний раз редактировалось F_Flash; 12.08.2005 в 18:42.
Старый 12.08.2005, 18:44
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 113  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
разница в 35-40 мс на 10000 подсчетов, ну не знаю за уши как притянуто
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 12.08.2005, 18:52
F_Flash вне форума Посмотреть профиль Отправить личное сообщение для F_Flash Найти все сообщения от F_Flash
  № 114  
Ответить с цитированием
F_Flash
 
Аватар для F_Flash

Регистрация: Feb 2002
Сообщений: 358
Отправить сообщение для F_Flash с помощью ICQ
Цитата:
Сообщение от iNils
разница в 35-40 мс на 10000 подсчетов, ну не знаю за уши как притянуто
Ну ты можешь просто не меняя код позапускать у тебя разница будет такая же. Это погрешность просто. Нелтьза создать иделаьные условия.

В первом примере разница 10% аво втором 1% и то не понятно в какую сторону.

Старый 12.08.2005, 23:01
руль вне форума Посмотреть профиль Отправить личное сообщение для руль Найти все сообщения от руль
  № 115  
Ответить с цитированием
руль
 
Аватар для руль

Регистрация: May 2002
Адрес: Литва
Сообщений: 109
Отправить сообщение для руль с помощью ICQ
Цитата:
Сообщение от F_Flash
1.Хит тест для объектов не прокатывает т.к. он смотрит не по форме объекта а по боудинбоксу объектов. т.е. по прямоугольным рамкам грубо говоря которые описаны вокруг объектов.
2. ЧТоб решить эту проблему есть только один способ создавать для каждого объекта набор вершин замыкание которых обарзуют форму объекта. И столкновение проверять если хотябы одна из вершин оджного объекта принадлежит отбласти дркгого объекта то столкновение произошло.
вот-вот...я это и пытался вдолбить - что если задавать обьект в виде массива вершин - этого будет вполне достаточно. А столкновение считать либо по хиттесту либо попытаться написать свою функцию, но не факт что получится быстрее.

Цитата:
Сообщение от F_Flash
А вообще самый правильный путь реализации движка физики для флеша.
Это использования примитивов описанных вокруг формы объекта.
- Окружность.
- Прямоугольник
- Многоугольник.
первые два - частные случаи последнего
__________________
Все что не делается - все к лучшему
Все что к лучшему - то не делается

Старый 12.08.2005, 23:14
Takato вне форума Посмотреть профиль Отправить личное сообщение для Takato Посетить домашнюю страницу Takato Найти все сообщения от Takato
  № 116  
Ответить с цитированием
Takato
 
Аватар для Takato

Регистрация: Aug 2005
Адрес: не дом и не улица
Сообщений: 1,204
Цитата:
Сообщение от руль
первые два - частные случаи последнего
окружность - не многоугольник. ее ваще задать можно центром и радиусом - и расчет на соприкосновение с ней делать, как уже сказали, гораздо легче
__________________
Давайте нанесем по ним ядерный удар!

Старый 13.08.2005, 03:18
Ion вне форума Посмотреть профиль Найти все сообщения от Ion
  № 117  
Ответить с цитированием
Ion
Banned
[5 01.09.2006]

Регистрация: Jun 2005
Сообщений: 1,805
окружность - это по сути правильный многоугольник с бесконечно большим количеством бесконечно малых сторон

Старый 13.08.2005, 03:30
Ion вне форума Посмотреть профиль Найти все сообщения от Ion
  № 118  
Ответить с цитированием
Ion
Banned
[5 01.09.2006]

Регистрация: Jun 2005
Сообщений: 1,805
Цитата:
Сообщение от F_Flash
Верно, о чем и речь, что на создение переменной уходит очень много времени во флеше. Это один из явных примеров о медленности скрипта флеша .
да, тут они не рассчитали. Надо было им сделать как javascript: хранится программа в виде скрипта, а перед выполнениемвсё компилится в машинно-зависимый код, что доводит скорость выполнения почти до С(++). Я тут игру 1-у пишу с немеренным количеством графики и заметил вот что: в самом начале все дико тормозит, но когда каждый каждый клип по всем фреймам пройдется и все переменные задействуются, всё идет намного быстрее. Это наводит на мысль, что память для каждого объекта выделятся не при его формальном создании, а непосредственно перед использованием. Видимо, макромедийцы таким образом решили "размазать" загрузку по всей флешке тонким слоем, чтобы не было заметно, но не рассчитали, что если посреди воспроизведения потребуется выделить немеренный блок памяти то добром это не кончится. Отсюда новый вывод: чтобы снизить тормоза до минимума надо все объекты до реального использования заюзать формально:

var a:Number = 123;
a=a+1-1;

my_mc.play();

и т.д..

ЗЫ: прошу простить за флейм, но раз уж затронули эту тему, решил поделиться давнишними мыслями и узнать, что вы думаете по этому поводу.

Старый 13.08.2005, 03:34
Takato вне форума Посмотреть профиль Отправить личное сообщение для Takato Посетить домашнюю страницу Takato Найти все сообщения от Takato
  № 119  
Ответить с цитированием
Takato
 
Аватар для Takato

Регистрация: Aug 2005
Адрес: не дом и не улица
Сообщений: 1,204
Цитата:
Сообщение от Ion
окружность - это по сути правильный многоугольник с бесконечно большим количеством бесконечно малых сторон
Который будет бесконечно тормозить во флэше
__________________
Давайте нанесем по ним ядерный удар!

Старый 13.08.2005, 03:36
Ion вне форума Посмотреть профиль Найти все сообщения от Ion
  № 120  
Ответить с цитированием
Ion
Banned
[5 01.09.2006]

Регистрация: Jun 2005
Сообщений: 1,805
более того - он везде вызовет падение системы при попытке выполнения

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

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

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


 


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


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