swift - 如何使 SKSpriteNode 与 SKLabelNode 发生碰撞?SK精灵
问题描述
我想我的问题很清楚......情况是我试图将篮子 SKSpriteNode 与单词 SKLabelNode 相撞。实际上我可以检测到我的篮子与墙壁之间的碰撞,但是当我将相同的规则应用于标签和篮子时。我无法检测到碰撞。
这是我创建单词'''的代码
func createWord() {
words = SKLabelNode(text: "\(wordBank[wordIndex])")
words?.physicsBody! = SKPhysicsBody(rectangleOf: self.size)
words?.physicsBody!.collisionBitMask = wallCategory
words?.physicsBody!.contactTestBitMask = wallCategory
words?.physicsBody!.categoryBitMask = wallCategory
words?.physicsBody!.affectedByGravity = false
words?.physicsBody!.isDynamic = true
words?.fontSize = 20
words?.name = "words"
let number = Int.random(in: 1 ..< 10)
words?.position = CGPoint(x: (50 * number), y: 450)
words?.zPosition = 1
addChild(words ?? SKLabelNode(text: ""))
}
'''
这是我创建篮子的代码
"""
basketNode = SKSpriteNode(imageNamed: "basket.png")
basketNode.size = CGSize(width: 106.03, height: 100)
defaultBasketPos = CGPoint(x:frame.midX, y:basketNode.frame.height/2)
basketNode.position = defaultBasketPos
basketNode.name = "basket"
basketNode.zPosition = 1
basketNode.physicsBody = SKPhysicsBody(rectangleOf: basketNode.size)
basketNode.physicsBody?.collisionBitMask = wallCategory
basketNode.physicsBody?.contactTestBitMask = wallCategory
basketNode.physicsBody?.categoryBitMask = wallCategory
basketNode.physicsBody?.affectedByGravity = false
basketNode.physicsBody?.isDynamic = true
addChild(basketNode)
"""
我只是打印(“碰撞”)到func didBegin(_联系:SKPhysicsContact)
最后是我的代码
'''
let wallCategory:UInt32 = 0x1 << 1
'''
我想我在这里犯了一个错误,因为问题是我不能很好地理解类别。
谢谢!
解决方案
推荐阅读
- scala - IntelliJ 中 sbt 插件的信任库设置
- sql - SQL 到 LiNQ,在加入条件下左加入
- swift - 如何以编程方式设置 NSPopUp 标题。Swift4 OSX
- java - 使用 Hibernate App 在 Java 中更改 MySql for PostgreSQL 时出错
- multithreading - CUDA统一内存可以被另一个CPU线程写入吗?
- javascript - 如何使用for循环返回数组中第一次出现的重复项?
- c# - 将对象移动到鼠标 X
- laravel - 在 laravel 的一条路线上使用多个警卫
- ios - 以编程方式填充 UIViews 的 UIStackView 不会在 UIScrollView 内滚动
- python - 将 base64 转换为 cv2.numpy 数组并返回到 base64