didBeginContact logic OSX swift -


i having trouble logic inside of didbegincontact on osx game i'm creating. written in swift, here code is:

   func didbegincontact(contact: skphysicscontact) {      let collision: uint32 = contact.bodya.categorybitmask |         contact.bodyb.categorybitmask      if collision == physicscategory.player | physicscategory.wall {      } else if collision ==         physicscategory.player | physicscategory.box {             player.setjump(true)      } else if collision ==         physicscategory.player | physicscategory.floor {             player.setjump(true)     }      if collision ==         physicscategory.laser | physicscategory.wall {              effects = skemitternode(filenamed: "explosion.sks")             addchild(effects!)             laser!.removefromparent()     }     else  if collision ==         physicscategory.laser | physicscategory.floor {             effects = skemitternode(filenamed: "explosion.sks")             addchild(effects!)              laser!.removefromparent()     } 

i feel mess of if statements horribly inefficient, have no idea how convert switch statement or if more efficient. i've tried removing 'else' , have series of 'if' statements have more bugs when collisions happen (boxes falling through walls ect..) advice appretiated

in case stumbles across this, here how resolved it.

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 }  

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -