作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个带有 edgeLoopForRect
的主体,我给它一个 categoryBitMask
但是当我调试对象的 categoryBitMask
时不同于我分配给它的...
self.physicsBody?.categoryBitMask = 1
self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
当我调试时它显示为 453453
而不是 ``
最佳答案
您不能将物理体分配给自身。您必须先创建一个节点,然后为其物理体分配一个类别位掩码。
即:
let edge = SKNode()
edge.phisicsbody = SKPhisicsbody(edgeloopfromrect: frame)
edge.physicsbody!.restitution = 0
edge.physicsbody!.friction = 0
edge.physicsbody!.angularDamping = 1
edge.physicsbody!.dynamic = false
edge.physicsbody!.categotyBitMask = 2
edge.physicsbody!.collisionBitMask = 1 //The category bit mask of the object you want it to collide with I used 1 as example
addChild(edge)
如果您遵循此示例,请记住对要与边发生碰撞的节点执行相同的步骤,并使碰撞位掩码为 2。
希望这对 friend 有帮助。
关于ios - Swift edgeLoopForRect 物理主体未正确获取 categoryBitMask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29678276/
我是一名优秀的程序员,十分优秀!