как использовать defineCollisionRectangle? - PullRequest
2 голосов
/ 27 января 2012

Для начала, как я могу использовать defineCollisionRectangle API ?

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

Правда, я могу просто использовать collidesWith(), чтобы проверить, сталкиваются ли 2 спрайта.

Но я хочу использовать спрайт с такими параметрами, как дом с забором на заднем дворе.

Я пытался использовать defineCollisionRectangle() в условии, установить его в конструкторе, но я не знаю, как его использовать.

Я могу просто использовать object.getX/gety и object.getWidth/getHeight, чтобы создать параметр вокруг спрайта.

Что на самом деле делает defineCollisionRectangle и как мне его использовать?

1 Ответ

1 голос
/ 01 февраля 2012

Чтобы обнаружить столкновение для таких объектов, как house с fence вокруг него, я бы начал с определения двух объектов Sprite - один для забора, другой для дома - каждый со своим собственным прямоугольник столкновения.

Чтобы нарисовать дом с забором вокруг него, я бы нарисовал houseSprite over fenceSprite как на скриншоте ниже:

http://i.stack.imgur.com/4Wn5B.jpg

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


Как правило, когда вы обнаруживаете, что один прямоугольник столкновения не делает то, что вам нужно, вы изобретаете способ разложить вещи на более прямоугольные подэлементы, чтобы при объединении эти элементы имитировали / приближали к желаемому поведению.

  • Конечные пользователи просто не волнует, сколько объектов Sprite находится за сценой. Они счастливы до тех пор, пока конечный результат ощущается как дом с забором на заднем дворе .
...