didBeginContact逻辑OSX swift

时间:2015-06-14 14:50:23

标签: macos swift if-statement logic collision

我在创建的OSX游戏中使用didBeginContact内部的逻辑时遇到了一些麻烦。它是用swift编写的,下面是代码:

for (i = 0; i < imgs.length; i++) {
 request(imgs[i].getAttribute('src')).on('error', function(err) {
  throw err
 }).pipe(fs.createWriteStream('data/imgs/' + randomString))
}

我觉得if语句的这些混乱是非常低效的,但我不知道如何将它转换为switch语句或者如果它甚至更高效。我已经尝试删除“其他”&#39;并且只是有一系列的&#39; if&#39;但是当碰撞发生时我会有更多的错误(箱子从墙壁落下等等)。任何建议都会被认可

1 个答案:

答案 0 :(得分:0)

如果有人遇到这种情况,我就是这样解决的。

let collision: UInt32 = contact.bodyA.categoryBitMask | 

 contact.bodyB.categoryBitMask

    switch collision{

    case PhysicsCategory.player | PhysicsCategory.floor:
         playerObj.setJump(true)

    case  PhysicsCategory.player | PhysicsCategory.box:
        playerObj.setJump(true)

    case PhysicsCategory.player | PhysicsCategory.wall:
        return
     // ect...
     default:
        return
}