在iOS 7中发生碰撞后,添加UigravityBehavior和Uipushbehavior



我正在弄乱iOS 7中的新物理API。

我决定我会做一个简单的游戏,我有一个角色,可以用手指轻按一下屏幕上的角色,定期从底部飞来飞去,如果他们击中了游戏的角色。

我已经实施了上述所有内容,并且效果很好,但是,唯一的是当形状与他碰撞时的角色。

所有碰撞都起作用,我的问题是在碰撞发生时试图使角色下降。因为我不希望角色在此之前掉下来(假设他在试图避免形状时浮动),所以我决定在发生碰撞时将角色添加到重力中,但首先,角色射击随着碰撞动画的继续。

有什么方法可以防止发生碰撞动画发生?有更好的方法吗?

这是我的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];
}

事实证明,我应该使用 collisionBehavior:beganContactForItem:withItem:atPoint:并在此方法中测试两个项目,以查看是否是 mainCharacter

最新更新