我试图在Swift中使用碰撞位掩码和接触测试位掩码,我希望两个对象不要碰撞在一起,所以我在做:
firstNode.physicsBody?.collisionBitMask = 0b01
secondNode?.collisionBitMask = 0b10
Run Code Online (Sandbox Code Playgroud)
由于SpriteKit不上这两个数字与操作,应该没有结果是00因为10 & 01 = 00?
那么为什么碰撞会发生呢?
谢谢.
我是Sprite Kit的新手。我尝试了2个球员进行简单的弹跳游戏,另一个是缓慢跟踪球。但是我发现了一个问题。当我将线移到带边缘的球上时,球从屏幕上消失了。还有一次没问题,球跳动。问题是什么?
我有一个GameScene,sks和ViewController。我的精灵节点来自sks。如果有人解释这种情况。会更好。我已附上我在下面所做的工作。
我的GameScene:
class GameScene: SKScene {
var ball = SKSpriteNode()
var enemy = SKSpriteNode()
var main = SKSpriteNode()
override func didMove(to view: SKView) {
ball = self.childNode(withName: "ball") as! SKSpriteNode
enemy = self.childNode(withName: "enemy") as! SKSpriteNode
main = self.childNode(withName: "main") as! SKSpriteNode
ball.physicsBody?.applyImpulse(CGVector(dx: -20, dy: -20))
ball.physicsBody?.linearDamping = 0
ball.physicsBody?.angularDamping = 0
let border = SKPhysicsBody(edgeLoopFrom: self.frame)
border.friction = 0
border.restitution = 1
self.physicsBody = border
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch …Run Code Online (Sandbox Code Playgroud)