【问题标题】:didBeginContact not called swift3 Xcode8didBeginContact 未调用 swift3 Xcode8
【发布时间】:2016-10-15 00:25:43
【问题描述】:

我的方法 didBeginContact 有问题。我有一个球和一面墙。 两个对象的碰撞工作正常。如果两个对象发生碰撞,它们会改变位置,但不会调用方法 didBeginContact。

// constants.swift
...

let ballCategory: UInt32 = 0x1 << 0 
let wallCategory: UInt32 = 0x1 << 1

...

// Physics balls (ball.swift)
...

init() {
  let size = CGSize(width: 32, height: 44)
  loadPhysicsBodyWithSize(size: size)
}

func loadPhysicsBodyWithSize(size: CGSize){
 physicsBody = SKPhysicsBody(rectangleOf: size)
 physicsBody?.categoryBitMask = ballCategory
 physicsBody?.contactTestBitMask = wallCategory
 physicsBody?.affectedByGravity = false
}

...

// Physics wall (wall.swift)
...

init() {
  let size = CGSize(width: 32, height: 44)
  loadPhysicsBodyWithSize(size: size)
}

func loadPhysicsBodyWithSize(size: CGSize){
 physicsBody = SKPhysicsBody(rectangleOf: size)
 physicsBody?.categoryBitMask = wallCategory
 physicsBody?.affectedByGravity = false
}

...

// GameScene (gameScene.swift)
class GameScene: SKScene, SKPhysicsContactDelegate { 
...
 override func didMove(to view: SKView) {
   physicsWorld.contactDelegate = self
 }
 func didBeginContact(contact: SKPhysicsContact){
  print("didBeginContact called")
 }
}

有人知道吗?感谢您的帮助!

【问题讨论】:

    标签: swift3 xcode8


    【解决方案1】:

    我通过改变解决了这个问题

    func didBeginContact(联系人:SKPhysicsContact)

    func didBegin(_contact: SKPhysicsContact)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多