Рекомендации по программированию на iOS - Help for Puzzle - PullRequest
1 голос
/ 21 сентября 2011

Я создаю простую головоломку для iPad / iOS. По сути, вы можете перетащить спрайт в какое-то место, и если оно совпадает, то оно совпадает. Как дети головоломки игры животных. Перетащите курицу в курицу, но не курицу в корову.

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

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

Тогда я начал мыслить циклично и использовать объект «пустой кусок». Но тогда мне все еще приходится «жестко кодировать» расположение пустых слотов.

Я использую cocos2d и box2d прямо сейчас, и мне просто нужно указать в правильном направлении. Есть ли редактор вершин, который я должен использовать вместо этого? Я устанавливаю спрайты в качестве датчиков?

Спасибо

1 Ответ

0 голосов
/ 22 декабря 2011

Если вы создаете три пустых слота, присвойте увеличенное значение z каждому.

int index = 0;

[self addChild:emptyPiece1 z:++index]
[self addChild:emptyPiece2 z:++index]
[self addChild:emptyPiece3 z:++index]

А затем для ваших реальных фигур дайте увеличенное значение z каждому.

[self addChild:puzzlePiece1 z:++index]
[self addChild:puzzlePiece2 z:++index]
[self addChild:puzzlePiece3 z:++index]

Вы можете сравнить значения z при столкновении, чтобы увидеть, является ли разница между этими двумя значениями правильной (в данном случае 3).

Что-то вроде:

if (abs(obj1.z - obj2.z) == (index/2)) {}

...