hitTest vs ...
Проскакивал тут на форуме у Мочи вопросик. Как быстрее определять столкновения/пересечения объектов, через hitTest или через расстояние. И я решил провести небольшой тест, результаты которого под катом.
Собственно сами тесты:
Test 1:
if(m1.hitTest(m2._x,m2._y,true)){
var temp = true;
}
Test 2:
var dx = m1._x - m2._x;
var dy = m1._y - m2._y;
if(dx * dx + dy * dy < rad * rad){
var temp = true;
}
Test 3:
var dx = m1._x - m2._x;
var dy = m1._y - m2._y;
if(Math.sqrt(dx * dx + dy * dy) < rad){
var temp = true;
}
И результаты их работы:
Test 1 = 2285 ms
Test 2 = 2286 ms
Test 3 = 2570 ms
Время замерено для 500 000 итераций каждого теста. Замерялось многократно и потом усреднялось. Использовался АС2.
Результат меня удивил. А именно удивила скорость hitTest-а, почему то, я считал что он окажется самым медленным, но нет. Да и разница во времени оказалась не такой уж существенной, чтобы отдавать предпочтение какому либо из способов, лучше не заморачиваться и использовать то что удобней в каждом конкретном случае.