У мене з'явився спрайт гравця, який я можу переміщатися по екрану за допомогою акселерометра. Тепер я хочу перевірити, чи не стикається він з будь-яким із багато хто випадково падаючі об'єкти, які я створив. Я знаю про це CGRectIntersectsRect
функція, але я не хочу, щоб я мав знати ім'я іншого об'єкта. Чи є якась функція getElementAt, як у Java, що я можу продовжувати перевіряти, чи є будь-який об'єкт, що перекривається моїм плеєром?
Спасибі заздалегідь!
Відповіді:
1 для відповіді № 1Єдиний еквівалент cocos2d getElementAt
Я знаю, що це getChildByTag:
. Крім того, ви можете провести цикл на кожному дочірньому шарі, використовуючи:
for (CCNode *child in [self children]) {
if (CGRectIntersects(child.boundingBox, player.boundingBox) {
// perform collision stuff
}
}
Також важливо пам’ятати, що це жахливо неефективно, особливо з багато хто об’єкти. Ви можете розглянути можливість використання фізичного двигуна для ефективного виявлення зіткнення для вас.