很幸运也很开心受到官方微博推荐,所以继续努力更新,逐渐完善这个小游戏。
添加分数既然能够击杀敌人了,下面我们计算玩家获得的分数。
类的属性列表中添加var score:UInt32 = 0
然后添加一个标签,用来显示分数。score下面添加:var scoreLabel:SKLabelNode!
dIDMovetoVIEw中,将这个label初始化好:
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上添加刚体,结构和敌人、子d类似:
plane.physicsBody = SKPhysicsBody(rectangleOfSize: plane.size)plane.physicsBody?.categoryBitMask = Playercategoryplane.physicsBody?.collisionBitMask = 0plane.physicsBody?.contactTestBitMask = Enemycategory
然后在dIDBeginContact中添加:
if contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask == Playercategory | Enemycategory{ print("player dIE")}游戏重置
然后我们想想,玩家死亡之后,如何重置游戏呢?首先重置积分,然后重置玩家位置,最好中间再有一个间隔,不要玩家消失之后立即开始,缓冲几秒钟。这几秒钟里,子d和敌人停止出现。
那么我们再加一个gameOver的bool型变量在类属性中var gameOver:Bool = false
,然后添加一个函数,重置游戏:
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条件,填上 && !gameOver
条件,就大功告成啦。
下面的部分需要一些storyboard基础了。说起来,我个人觉得storyboard用来写游戏UI真的是代码洁癖患者的福音,图片、字体都能非常方便的调整,自适应的开发更是无人能敌。
打开Main.storyboard文件,然后从右侧一个铜钱形状的面板中(object library),拖拽一个普通的VIEw Controller面板,然后命名为Begin VIEw Controller,将初始界面的指向箭头拖拽到这个新添加的controller中。
在这个Begin面板中,拖拽一个button组件进去,修改文字为play,调整一下字体字号,在右下角的align面板中,做一个竖直和水平的居中处理,如图:
然后在按钮上选右键,将action拖拽到我们的游戏视图中,跳转方式选择present modally,这样就大功告成了。看一下完整版吧:
添加完自适应之后,最左侧会有一些constraints条件。中间的椭圆圈出了初始vIEwController的指向,添加按钮点击跳转以后,最右侧椭圆处会有跳转标记。不复杂吧,需要更多了解的朋友可以留言,或者网上搜索storyboard自适应、跳转等相关知识。
以上是内存溢出为你收集整理的[原创]swift+spritekit中文教程第四篇全部内容,希望文章能够帮你解决[原创]swift+spritekit中文教程第四篇所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)