Тестирование удара для лабиринта - PullRequest
0 голосов
/ 22 апреля 2011

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

If(player.hitTestObject(Maze))
{
  function()
}

Но неважно, действительно ли он касается лабиринта (он находится в пустом пространстве внутри), он всегда регистрируется как касание. Есть ли способ это исправить?

Ответы [ 2 ]

1 голос
/ 23 апреля 2011

Вам не придется использовать какой-либо физический API.Они слишком тяжелые и сложные, и ваша задача проста.Попробуйте заменить метод hitTest на hitTestPoint

if(Maze.hitTestPoint(player.x,player.y))
{
  function()
}

Приветствия!

1 голос
/ 22 апреля 2011

Это то, что вы ищете:

http://www.mikechambers.com/blog/2009/06/24/using-bitmapdata-hittest-for-collision-detection/

Причина, по которой hitTest всегда говорит true, заключается в том, что он только проверяет, касаются ли ограничивающие рамки для двух объектов друг с другом. Больше информации о том, что это значит, можно найти по ссылке выше. То, что находится в ссылке выше, является объяснением того, как сделать пиксельные тесты на удар во флэш-памяти. :) Также, если вы играете в игру с использованием столкновений, подобных этой, и / или какой-либо другой физики, вас может заинтересовать этот урок:

http://gotoandlearn.com/play.php?id=135

Это видео о наборе мировых конструкций для Box2D, возможно, самой популярной физической библиотеки для флеш-памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...