Показать сообщение отдельно
Старый 27.10.2009, 01:08
Zeldan вне форума Посмотреть профиль Отправить личное сообщение для Zeldan Найти все сообщения от Zeldan
  № 1  
Ответить с цитированием
Zeldan

Регистрация: Oct 2009
Сообщений: 1
По умолчанию Как работает hitTestPoint?

Не могу разобраться по какому принципу hitTestPoint определяет попадание в случае с выставленным shapeFlag

Код и результаты:
Код AS3:
var rs:Shape = new Shape();
rs.graphics.beginFill(0xAAAAAA);
rs.graphics.drawRect(0, 0, 1, 1);
addChild(rs);
 
trace(rs.hitTestPoint(rs.x+rs.width/2, rs.y+rs.height/2, true));
trace(rs.x+rs.width/2, rs.y+rs.height/2);
> false
> 0.5 0.5

Код AS3:
var rs:Shape = new Shape();
rs.graphics.beginFill(0xAAAAAA);
rs.graphics.drawRect(0, 0, 2, 2);
addChild(rs);
 
trace(rs.hitTestPoint(rs.x+rs.width/2, rs.y+rs.height/2, true));
trace(rs.x+rs.width/2, rs.y+rs.height/2);
> true
> 1 1

То есть несмотря на то, что в первом случае точка (0.5, 0.5) попадает внуть блока размером в 1 пиксель, hitTestPoint не считает это пересечением.

Или я что-то делаю неправильно?
P.S. Делаем все в классе сцены, координаты глобальные.


Последний раз редактировалось Zeldan; 27.10.2009 в 01:11.