2015-06-07 3 views
1

Я пытаюсь собрать игру, используя SpriteKit, в Swift.Как проверить столкновение, если дело касается только нижней половины спрайта (подумайте о вишневой стебельке)

У меня есть движущаяся спрайт, который представляет собой прямоугольник шириной (sprite.frame.size.width) и высота 2 * (sprite.frame.size.width)

Я только хочу, чтобы проверить столкновение нижней части, которая представляет собой квадрат шириной (sprite.frame.size.width) и высотой (sprite.frame.size.width)

Я установил sprite.anchorPoint = CGPointMake (0,5, 0,25) и использовать способ CGRectIntersectsRect для проверки на столкновение с другим спрайтом. Но это не работает. Область столкновения остается первым прямоугольником.

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

Что мне здесь не хватает?

ответ

0

Я действительно нашел это UIEdgeInsets Функция, которая может использоваться для сжатия рамки. Если spriteB является спрайт в вопросе, то вместо тестирования, как это:

if CGRectIntersectsRect(spriteA.frame, spriteB.frame) { // something happens }

только врезке края к нижней половине spriteB, как это:

if CGRectIntersectsRect(spriteA.frame, UIEdgeInsetsInsetRect(spriteB.frame, UIEdgeInsetsMake(spriteB.frame.height/2 , 0 , 0 , 0))) { // something happens }

 Смежные вопросы

  • Нет связанных вопросов^_^