Получение данных от объектов, которые сталкиваются - PullRequest
0 голосов
/ 08 августа 2011

В настоящее время я разрабатываю игру, используя Cocos2d. Там еще нет кода, поскольку я все еще развиваю свои идеи Но я столкнулся с вопросом, на который я не могу ответить и хочу знать, что я что-то упускаю или что? Вот что я сейчас думаю:

Я «сбрасываю» несколько блоков с верхней части экрана, и они движутся вниз по экрану в случайных направлениях. В конечном итоге они окажутся в нижней части экрана и сложатся друг на друга. В конце концов, при падении некоторые блоки будут сталкиваться с другими. Когда два блока сталкиваются, я хочу проверить, равны ли определенные характеристики каждого блока (например, размер, цвет, ориентация и т. Д.). Каждый блок - это собственный объект, он будет обрабатывать свое собственное движение и обнаружение столкновений и будет иметь методы доступа для размера, цвета, ориентации и т. Д.

Вот мой вопрос:

Правильно ли я считаю, что каждый блок является отдельной единицей сам по себе и ничего не знает о других блоках? Например, блок A сталкивается с блоком B и знает только, что он столкнулся с чем-то, но не знает, что это был другой блок? Если это так, то как мне сделать правильное сравнение? Как мне узнать, какой блок столкнулся с каким блоком, и получить доступ к данным каждого блока и где мне провести сравнение? В слое?

Я бы хотел, чтобы меня указали в приличном направлении. Я не совсем уверен, что то, что я хочу сделать, выполнимо? Есть предложения?

1 Ответ

0 голосов
/ 08 августа 2011

Вы можете использовать физический движок, который обычно поставляется вместе с cocos2d - либо chipmunk , либо box2d . Физические движки позаботятся о столкновениях за вас, и если вы реализуете обратные вызовы столкновений, то вы можете знать, когда два объекта сталкиваются друг с другом. Затем вы можете проверить характеристики каждого объекта и реагировать соответствующим образом. Это руководство по интеграции бурундука и cocos2d может быть полезным.

...