[原创]swift+spritekit中文教程第四篇
很幸运也很开心受到官方微博推荐,所以继续努力更新,逐渐完善这个小游戏。 添加分数既然能够击杀敌人了,下面我们计算玩家获得的分数。 scoreLabel = SKLabelNode(text: "SCORE:0") scoreLabel.position = CGPointMake(size.width * 0.5,size.height - 50) addChild(scoreLabel) 然后在打印enemy die的地方,将print替换为 score++ scoreLabel.text = "SCORE:(score)" 运行一下,是不是很简单呢?文字节点的fontColor/fontName/fontSize这里不赘述了,大家可以自己微调。 玩家阵亡下面添加玩家阵亡的代码。 plane.physicsBody = SKPhysicsBody(rectangleOfSize: plane.size) plane.physicsBody?.categoryBitMask = PlayerCategory plane.physicsBody?.collisionBitMask = 0 plane.physicsBody?.contactTestBitMask = EnemyCategory 然后在didBeginContact中添加: if contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask == PlayerCategory | EnemyCategory{ print("player die") } 游戏重置然后我们想想,玩家死亡之后,如何重置游戏呢?首先重置积分,然后重置玩家位置,最好中间再有一个间隔,不要玩家消失之后立即开始,缓冲几秒钟。这几秒钟里,子弹和敌人停止出现。 func resetGame(){ gameOver = false score = 0 scoreLabel.text = "SCORE:(score)" plane.position = CGPointMake(size.width * 0.5,size.height * 0.5) addChild(plane) } 最后将打印player die的部分修改为: if contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask == PlayerCategory | EnemyCategory{ print("player die") gameOver = true contact.bodyA.node?.removeFromParent() contact.bodyB.node?.removeFromParent() runAction(SKAction.sequence([SKAction.waitForDuration(3),SKAction.runBlock({ self.resetGame() })])) } 这里用了一个动作序列,等待三秒钟,然后调用了重置游戏函数。 将update函数中的两个if条件,填上 添加简单UI下面的部分需要一些storyboard基础了。说起来,我个人觉得storyboard用来写游戏UI真的是代码洁癖患者的福音,图片、字体都能非常方便的调整,自适应的开发更是无人能敌。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |