Sprite kit 如何在SpriteKit中仅在敌人一侧实现接触和碰撞?

Sprite kit 如何在SpriteKit中仅在敌人一侧实现接触和碰撞?,sprite-kit,collision-detection,Sprite Kit,Collision Detection,假设我有一个滚动跳跃的球,一个方块在同一条线上。我想让这个球只与方块的左侧碰撞。如果球跳过了挡块——他们不应该接触,球不应该落在正方形的顶部,它应该落在地上并进一步滚动。我有以下代码: self.ball.physicsBody = SKPhysicsBody(circleOfRadius: CGFloat(self.ball.size.width / 2)) self.ball.physicsBody?.affectedByGravity = false self.ball.physicsBo

假设我有一个滚动跳跃的球,一个方块在同一条线上。我想让这个球只与方块的左侧碰撞。如果球跳过了挡块——他们不应该接触,球不应该落在正方形的顶部,它应该落在地上并进一步滚动。我有以下代码:

self.ball.physicsBody = SKPhysicsBody(circleOfRadius: CGFloat(self.ball.size.width / 2))
self.ball.physicsBody?.affectedByGravity = false
self.ball.physicsBody?.categoryBitMask = ColliderType.Ball.rawValue
self.ball.physicsBody?.collisionBitMask = ColliderType.Square.rawValue
self.ball.physicsBody?.contactTestBitMask = ColliderType.Square.rawValue

self.square.physicsBody = SKPhysicsBody(texture:square.texture, size: self.square.size)
self.square.physicsBody?.dynamic = false
self.square.physicsBody?.categoryBitMask = ColliderType.Square.rawValue
self.square.physicsBody?.contactTestBitMask = ColliderType.Ball.rawValue
self.square.physicsBody?.collisionBitMask = ColliderType.Ball.rawValue

它运行得很好,但球正在和整个广场相撞。如何使用Swift更改此内容以制作我想要的内容?

您是否要求将此内容翻译成Swift?不,此内容已在Swift中。我请求帮助我只使SKSpritenode的一侧可用于碰撞和接触。这段代码就是我如何制作精灵的物理实体的。我想这会有帮助的。我只是写了一篇关于swift的文章,因为我不知道Obj-C,如果它是客观的,我也无法理解答案-c@TimurTest我认为您需要跟踪球的位置,并有条件地设置和删除要有条件碰撞的项目的碰撞类别。