Добавление UIGravityBehavior и UIPushBehavior после столкновения происходит в iOS 7
Я возиться с новым физическим API в iOS 7.
Я решил, что сделаю простую игру, у меня есть персонаж, который может перемещаться по экрану одним касанием пальца, периодически фигуры взлетают снизу, и если они попадают в персонажа, игра заканчивается.
Я реализовал все вышеперечисленное, и это прекрасно работает, однако, единственное, что не происходит, - это падение персонажа, когда с ним сталкивается фигура.
Все столкновения работают, моя проблема состоит в том, чтобы заставить персонажа упасть во время столкновения. Поскольку я не хочу, чтобы персонаж мог падать до этого (допустим, он левитирует, пытаясь избежать фигур), я решил добавить персонажа к гравитации, когда происходит столкновение, и это происходит, но сначала он стреляет вверх, поскольку анимация столкновения продолжается.
Есть ли способ предотвратить возникновение анимации столкновения? Есть ли способ лучше?
Вот мой код в collisionBehavior:beganContactForItem:withBoundaryIdentifier:atPoint:
метод:
// Main Character
//
if ([item isEqual:self.mainCharacter]) {
[self.collision removeItem:item];
// Push
//
UIPushBehavior *pushBehaviour = [[UIPushBehavior alloc] initWithItems:@[self.mainCharacter] mode:UIPushBehaviorModeInstantaneous];
[pushBehaviour setPushDirection:CGVectorMake(0.0f, 1.0f)];
[self.animator addBehavior:pushBehaviour];
[pushBehaviour setActive:YES];
[self.gravity addItem:item];
}
1 ответ
Оказывается, я должен был использовать collisionBehavior:beganContactForItem:withItem:atPoint:
и тестирование ОБА пунктов в этом методе, чтобы увидеть, если это mainCharacter