幕的height),把bgNode2
移到之间当前红色框(bgNode1)的位置,代码如下
/// 第二个背景node
if bgNode2.position.y < -bgNode2.size.height {
bgNode2.position.y = bgNode1.position.y + bgNode1.size.height
}
完整的代码如下:
override func update(_ currentTime: TimeInterval) {
三、SpriteKit物理碰撞
物理碰撞发生在:玩家飞船发射子弹击中外星敌机、发星敌机撞到玩家飞船
SpriteKit SKPhysicsBody类物理体的属性图表:
http://www.ifiero.com/index.php/archives/166
1.Spritekit物理节点categoryBitMask属性
2.用didBegin来监测碰撞:
didBegin接收playerNode.physicsBody.contactTestMask的碰撞通知:
playerNode.physicsBody?.contactTestBitMask = PhysicsCategory.Alien
我们在函数bulletHitAlien()和alienHitSpaceShip()不用判断标识的大小,即判断 PhyscisCategory.Alien < PhysicsCategory.BulletBlue或者PhyscisCategory.Alien > PhysicsCategory.BulletBlue,但还是要了解一下哪个是no