【发布时间】:2017-10-31 15:57:39
【问题描述】:
我正在尝试构建我的第一个 iOS 快速游戏,但在检测对象之间的碰撞时遇到了一些麻烦。 我有一些物体掉下来,屏幕底部还有另一个物体。 我想知道坠落的物体何时接触到另一个物体。 所以,这就是我所拥有的:
在我的场景类中(在我的 init 方法中):
player = SKSpriteNode(imageNamed: "playerImg")
player.position = CGPointMake(gameBoard.size.width/2, -(gameBoard.size.height + 55))
player.size = CGSize(width: 40,height: 40)
player.physicsBody = SKPhysicsBody(rectangleOfSize: player.size)
player.physicsBody?.dynamic = false
player.physicsBody?.categoryBitMask = BodyType.bro.rawValue
player.physicsBody?.contactTestBitMask = BodyType.bro.rawValue
player.physicsBody?.affectedByGravity = true
在另一个自定义方法中我有(仍然在同一个场景类中):
let sprite = SKSpriteNode(texture: texture)
sprite.position = pointForColumn(block.column, row: block.row - 2)
block.sprite = sprite
sprite.physicsBody = SKPhysicsBody(rectangleOfSize: sprite.size)
sprite.physicsBody?.dynamic = false
sprite.physicsBody?.categoryBitMask = BodyType.bro.rawValue
sprite.physicsBody?.contactTestBitMask = BodyType.bro.rawValue
sprite.physicsBody?.affectedByGravity = true
这是我的 BodyType 枚举:
enum BodyType:UInt32 {
case bro = 1
case ground = 2
case anotherBody1 = 4
case anotherBody2 = 8
case anotherBody3 = 16
}
最后,在我的 didMoveToView 方法中,我有:
physicsWorld.contactDelegate = self
view.showsPhysics = true
所以,我看到了我的对象周围的绿色边框,但是当它们触摸时,didBeginContact 方法中没有任何内容(此处附有屏幕截图)。 任何人,都知道为了在检测到碰撞时触发而缺少什么?
【问题讨论】:
标签: ios swift collision-detection collision