UICollisionBehavior的问题

时间:2014-02-11 19:50:18

标签: ios uiview uikit uikit-dynamics uicollisionbehavior

我不确定我是否只是在UICollisionBehavior中发现了一些错误,或者我是否只是没有正确实现它。

我有两个主要问题。

1)我定期创建一个UICollisionBehavior只有两个项目,一个玩家,一个新项目,从顶部掉落,或者从屏幕底部向上推。

然而,两个项目(不是玩家)会相互碰撞。但是当我在动画师中记录碰撞时,它们都只有两个项目,即玩家和下降/上升项目。

根据UICollisionBehavior类引用碰撞:

  

您可以向动态动画师添加多个碰撞行为。动态项可以是任意数量的碰撞行为的一部分,前提是这些行为属于同一个动画师。例如,您可以为一组say,blue,items指定碰撞行为,而为粉红色项指定另一种碰撞行为。当你将这两种行为添加到动态动画师时,蓝色项目可能会相互碰撞,粉红色项目可能会相互碰撞,但是蓝色项目和粉红色项目不会发生碰撞 - 它们会互相忽略。

使用上面的例子,我的粉红色物品和蓝色物品发生碰撞,尽管它们没有出现相同的碰撞行为。

2)当点击屏幕时,我的播放器会被UIPushBehavior推,但不时会发现播放器与项目之间的碰撞(下降/上升)。

我不知道上述问题是否相关,所以我暂时把它们放在同一个问题上。

有谁知道它可能是什么?有没有人发现这是一个错误?

一如既往地感谢。

1 个答案:

答案 0 :(得分:0)

UICollisionBehaviorUICollisionBehaviorMode

typedef NS_OPTIONS(NSUInteger, UICollisionBehaviorMode) {
    UICollisionBehaviorModeItems        = 1 << 0,
    UICollisionBehaviorModeBoundaries   = 1 << 1,
    UICollisionBehaviorModeEverything   = NSUIntegerMax
} NS_ENUM_AVAILABLE_IOS(7_0);

默认值为UICollisionBehaviorModeEverything,因此项目将与边界和其他项目发生冲突。您需要将此属性设置为UICollisionBehaviorModeBoundaries