Я новичок в Objective-C. В настоящее время я работаю над игрой, использующей Cocos2D и Box2D. Моя проблема в том, что когда сталкиваются 3 объекта, игра вылетает. Теперь позвольте мне подробно описать мою игру:
В моей игре главный герой стоит на вершине здания. Ниже здания есть эта дорога. Враги проходят по дороге с различной случайной скоростью, входя в экран справа и выходя слева. Я создал врагов как b2_kinematicBodies
и установил случайную скорость для каждого из них, используя SetLinearVelocity()
. Главный герой стреляет во врагов. Снаряд (объект стрельбы) - b2_dynamicBody
. Когда снаряд поражает врагов, и снаряд, и противник уничтожаются. Во время игры иногда врага, движущегося с низкой скоростью, пересекает тот, который движется с более высокой скоростью. Если снаряд поражает двух врагов как раз в тот момент, когда они перекрывают друг друга, и один собирается пройти мимо другого, игра вылетает! Пожалуйста, помогите мне с этим.
Я обнаружил столкновение, используя b2contactListener
класс.
Одна вещь, которую я раньше не упоминал, - это то, что я не создаю врагов как отдельные отдельные тела. Вместо этого я создаю его один раз и заставляю его двигаться, и я вызываю этот метод (который создает врагов и заставляет их двигаться) внутри init, как показано ниже:
[self schedule:@selector(addRightTarget) interval:2.0];