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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.03.2007, 15:10
CCCPirate вне форума Посмотреть профиль Отправить личное сообщение для CCCPirate Найти все сообщения от CCCPirate
  № 1  
Ответить с цитированием
CCCPirate
 
Аватар для CCCPirate

Регистрация: Jun 2006
Сообщений: 1,061
По умолчанию Какой hittest быстрее?

Уважаемые флэшеры!
Вот пытаюсь сделать меньшую нагрузку на проц в своей игрухе,
очередь дошла до hittestа до этого он был просто
Код:
mc1.hitTest(mc2),
но в некоторых ситуациях я могу довольствоваться и
Код:
mc1.hitTest(mc2.x,mc2.y,false)
Sahpe flag - false по идее должно быть быстрее. так?

Вроде во втором случае стало побыстрее, но я не уверен, если кто знает, что лучше для меньшей нагрузки или где про это можно почитать пишите.

Спасибо.

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

Регистрация: Apr 2006
Адрес: Kiev
Сообщений: 1,675
Отправить сообщение для BigDan с помощью ICQ
забиваешь хитТест в цикл(i=0;i <= 500), с помощью getTimer() определяешь время работы данного учатска кода(цикла). Меняешь параметры hitTest() и делаешь выводы.

Старый 11.03.2007, 15:35
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Можно ещё попользовать хиттест битмапдаты, он более гибок.

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

Регистрация: Jun 2006
Сообщений: 1,061
Ну вот потестил,

пришел доложиться о результатах

значит у меня получилось, что на 100000 хиттесов

у функции вида

Код:
mc1.hitTest(mc2) //ушло около 1300 мс
mc1.hitTest(mc2._x, mc2._y, false) //тоже около 1300 мс 
mc1.hitTest(mc2._x, mc2._y, true) //около 1600 мс
ну а если клипы в разных координатных сетках?( как в моем случае)
тогда нам приходится еще localToGlobal юзать, который сам посибе жрет около 1600 мс

а вместе:

Код:
coord.x=mc2._x
coord.y=mc2._y
this.localToGlobal(coord);
mc1.hitTest(coord.x, coord.y, false) //кушают около 2600 мс
отсюда делаю вывод что mc1.hitTest(mc2) и проще и практичнее ( вмоем случае разумеется)


о битмапном хите я даже и не думал, он тяжелее по определению ( или мне так кажется?)


Последний раз редактировалось iNils; 11.03.2007 в 17:45.
Старый 11.03.2007, 23:18
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 5  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Цитата:
Сообщение от CCCPirate
ну а если клипы в разных координатных сетках?( как в моем случае)
тогда нам приходится еще localToGlobal юзать, который сам посибе жрет около 1600 мс
А вручную посчитать смещение невозможно? Лично мне всегда без localToGlobal удавалось обходиться
__________________
4am is time to rock

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

Регистрация: Jun 2006
Сообщений: 1,061
Цитата:
Сообщение от DarkLight
А вручную посчитать смещение невозможно? Лично мне всегда без localToGlobal удавалось обходиться
Нет, в моем случае это неприемлемо.
В игре где взаимодействуют множество клипов с кучей вложенных эти вычисления обойдутся в несколько раз дороже.

Старый 12.03.2007, 14:21
relevance4 вне форума Посмотреть профиль Отправить личное сообщение для relevance4 Посетить домашнюю страницу relevance4 Найти все сообщения от relevance4
  № 7  
Ответить с цитированием
relevance4

Регистрация: Nov 2006
Адрес: там
Сообщений: 468
Отправить сообщение для relevance4 с помощью ICQ
пользуй хиттест от bitmapData. он быстрее

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

Регистрация: Jun 2006
Сообщений: 1,061
Цитата:
Сообщение от relevance4
пользуй хиттест от bitmapData. он быстрее
No stretching, rotation, or other transformation of either object is considered when doing the hit test.

по этой причине он не подходит

Старый 13.03.2007, 12:11
firelord вне форума Посмотреть профиль Отправить личное сообщение для firelord Найти все сообщения от firelord
  № 9  
Ответить с цитированием
firelord

Регистрация: Nov 2006
Сообщений: 85
откровенно говоря, я лично результатами автора сильно удивлен! по идее, hitTest(,,true) должна выполняться на ПОРЯДОК дольше hitTest(,,false) - если я правильно понимаю, в последнем варианте сравнение идет просто по координатам (несколько арифметических функций), а в первом - проверяется наложение ВСЕХ элементов клипа.

или это происходит по-другому? может быть флеш кэширует векторные ролики в битмапах - и проверяет только наличие точки в маске? тогда по-идее скорость c bitmapData должна быть сравнима...

Старый 13.03.2007, 13:09
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Firelord, прочитайте в хелпе, за что отвечает третий параметр и когда он необходим.

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

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

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


 


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


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