3

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

Основная игра будет шаром, который вы проводите в лабиринте, но лабиринт может быть в несколько раз больше, чем экран. Лабиринт может быть большим растровым изображением или состоящим из плиток, но я еще не решил, как заставить мяч взаимодействовать с лабиринтом.

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

Тогда есть краевые тела SpriteKit, как показано здесь - https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Physics/Physics.html Могу ли я использовать их на участках лабиринта, с которыми может столкнуться шар?

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

Все примеры, которые я могу найти, похоже, спрайты, сталкивающиеся с другими спрайтами. Но как насчет спрайтов и фона?

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

Mark

+0

Я рекомендую сделать стены в спрайты (L-образные, I-образные и т. Д.), А затем просто создать сцену SpriteKit и сбросить стены. Это позволит вам легко установить физическую категорию стен и легко взаимодействовать с мячом. –

ответ

1

Для этого не существует правильного или неправильного способа.

В виде плиток против 1 сплошной фон вы должны задать себе несколько вопросов:

Сколько памяти я хочу потреблять?
Сколько времени загрузки я хочу использовать на нем?
Насколько подробно я хочу получить фоновый рисунок?
Насколько универсальна (сумма изменений) я хочу сделать фон?
Является ли фон большим, чем максимальный размер текстуры?

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

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

Вы можете использовать SKPhysicsBody(texture:) использовать текстуру, чтобы сделать ваши стены (. Прозрачность не будет иметь столкновения)
Если вы делаете плитки, вы можете прикрепить тело к каждой плитке.
Наконец, вы можете создать тонны тел и объединить их вместе в свой фоновый узел.

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

К проблеме с круглыми деталями.

SKPhysicsBody позволяет использовать CGPath, поэтому просто создайте путь для любой формы, в которой вы нуждаетесь.

+0

Я думаю, что это то, что я ищу https://www.raywenderlich.com/137216/whats-new-spritekit-ios-10-look-tile-maps – MarkT

+0

Это новая функция ios 10, которая позволяет вам использовать плитки, и они могут иметь физические тела. – MarkT

+0

Да. Это связано с тем, что я говорил, единственная проблема заключается в том, хотите ли вы, чтобы все потребляемая память – Knight0fDragon

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

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