2014-11-04 4 views
0

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

Я делаю нечто похожее на платформерную игру (не классический платформер).

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

Мне нужно выбирать между физическим двигателем и плитка tehnique ...

Первые проблемы, которые я могу думать, являются:

  1. проблема с двигателем физики и лестницы, поскольку правила физики применяются к герою и его движения, так что я думаю, было бы трудно получить его на лестницах, в то время как физическое свойство physicalBody.dynamic установлено в YES.

  2. проблема с плиткой tehnique - как заставить героя падать с уступа (при работе) с реалистичной дугой (когда мы используем физику, это делается самим двигателем ...)?

И главная проблема, основанная на типе игры я делаю, это, sholud я совмещаю плитки tehinque (скажем, для перемещения героя) и физический движок для обнаружения столкновений и стрельбы врагов?

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

TNX заранее

+1

Предлагаю вам ознакомиться с физикой SK и провести несколько тестов. Эти вопросы не подходят для SO, они слишком широки и в значительной степени основаны на мнениях. Обработка столкновений с помощью лестниц не должна быть проблемой при использовании битовых масок столкновений и, возможно, методов делегирования конфликтов для изменения поведения столкновений на лестнице. Прохождение сквозь гравитацию тривиально, используя физику или нет. Сочетание tilemap и физики, безусловно, выполнимо. В конечном итоге решение ваше, здесь нет определенного ответа. – LearnCocos2D

+0

Thanks LearnCocos2D, я надеялся, что вы ответите. Я прочитал вашу статью об этом и еще несколько, но решил спросить, потому что я не хочу начинать беспокоиться с самого начала. – Whirlwind

+2

И помните, что физика в игровом движке, таком как SpriteKit, - это не все или ничего. Вы можете использовать его для обнаружения контакта, не позволяя ему разрешать столкновения, вы можете обнаруживать контакт или столкновения без гравитации, вы можете выполнять полное физическое поведение для некоторых элементов сцены и имитировать движение себя для других и т. Д. – rickster

ответ

1

Я рекомендовал бы физический движок. Это очень прямолинейно ... то, что вы ожидаете, вообще-то происходит.

Run, Jump, Shoot, Fall и т. Д. - Очень легко сделать, используя физический движок.

Лестницы будут проблематичными, но вы можете установить флаг bool, который позволит вам узнать, когда лестница и герой касаются друг друга, поэтому вы можете показывать разные типы поведения в зависимости от того, является ли этот bool истинным или нет. Ex. Сделайте героя, не затронутого гравитацией, если коснитесь лестницы.

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

+0

Привет, meisenman, tnx для ответа. Мне кажется, мне нравится эта идея: «Сделать героя не затронутым гравитацией, если коснуться лестницы». Спасибо всем за помощь. Я знаю, что мне нужно тестировать и учиться гораздо больше, но небольшая помощь означает много, когда в начале. – Whirlwind

0

Я бы посоветовал использовать физический движок, если у вас не будет сложного физического взаимодействия, которое было бы сложно скопировать вручную, т. Е. Не только обнаружение столкновения и базовое движение, но и реальное реагирование на столкновения, механические объекты, сделанные из многих движущихся частей и суставы и т. д.Я не уверен, что вы подразумеваете под «технологией плитки», но вы можете легко кодировать вручную вещи, как персонаж, ускоряющийся к земле, сохраняя при этом импульс вперед (т. Е. Отслеживая дугу).

+0

Tnx для ответа Asik. Я понял. Мне нужно использовать физику для других частей игры. Враги и некоторые препятствия (подпрыгивание и т. Д.). Для таких объектов мне нужен реалистичный физический движок. Я не могу сделать это вручную, и я думаю, что нет необходимости. Я просто пытаюсь понять, перед началом, это физический движок, который мне нужен для завершения такой игры. По плитке tehnique, я имею в виду движущегося героя, использующего плитки и их положение на сцене. – Whirlwind

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