![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jun 2006
Сообщений: 1,061
|
Уважаемые флэшеры!
Вот пытаюсь сделать меньшую нагрузку на проц в своей игрухе, очередь дошла до hittestа до этого он был просто но в некоторых ситуациях я могу довольствоваться и Sahpe flag - false по идее должно быть быстрее. так? Вроде во втором случае стало побыстрее, но я не уверен, если кто знает, что лучше для меньшей нагрузки или где про это можно почитать пишите. Спасибо. |
|
|||||
|
забиваешь хитТест в цикл(i=0;i <= 500), с помощью getTimer() определяешь время работы данного учатска кода(цикла). Меняешь параметры hitTest() и делаешь выводы.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Можно ещё попользовать хиттест битмапдаты, он более гибок.
|
|
|||||
|
Регистрация: 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 мс ![]() о битмапном хите я даже и не думал, он тяжелее по определению ( или мне так кажется?) Последний раз редактировалось iNils; 11.03.2007 в 17:45. |
|
|||||
|
ветеран форума
|
Цитата:
__________________
4am is time to rock |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 1,061
|
Цитата:
В игре где взаимодействуют множество клипов с кучей вложенных эти вычисления обойдутся в несколько раз дороже. |
|
|||||
|
пользуй хиттест от bitmapData. он быстрее
|
|
|||||
|
Регистрация: Jun 2006
Сообщений: 1,061
|
Цитата:
по этой причине он не подходит |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 85
|
откровенно говоря, я лично результатами автора сильно удивлен! по идее, hitTest(,,true) должна выполняться на ПОРЯДОК дольше hitTest(,,false) - если я правильно понимаю, в последнем варианте сравнение идет просто по координатам (несколько арифметических функций), а в первом - проверяется наложение ВСЕХ элементов клипа.
или это происходит по-другому? может быть флеш кэширует векторные ролики в битмапах - и проверяет только наличие точки в маске? тогда по-идее скорость c bitmapData должна быть сравнима... |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Firelord, прочитайте в хелпе, за что отвечает третий параметр и когда он необходим.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|