我在创建的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;但是当碰撞发生时我会有更多的错误(箱子从墙壁落下等等)。任何建议都会被认可
答案 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
}