一个人做游戏(终)——新功能与一些练习
序
这次的专题UP在第一期就说过,不是为了做好玩的游戏,目的是用这种简单的游戏类型教学大家程序入门。
上一期有计划想将游戏内容扩展丰富,不过UP看了下,发现之后所有的扩展都是搬砖了。
所以UP将不自己亲自扩展了,而是给大家讲方法,并将源代码留给各位,让各位可以学习扩展。
炸弹气球功能
之前UP有一个想法是做个黑色气球,点击后反而会扣血,增加游戏性,这种内容怎么写呢,其实就是把之前所学习的知识复制粘贴。
我们曾经在项目里写过redBall功能,就是普通的点击加分的气球,如果我们要写点击扣血的气球,我们可以复制一份。

将prefab绑定过的redball拖到游戏区域中,然后复制一份blackball(这些操作在之前几期都做过描述,这里就不再次讲述了)
接下来我们要修改代码,在一个代码里区分两种气球,这好像是一个新知识,打开我们之前的ballFly代码(如果不记得,可以git下我的代码,看看是哪个),添加以下内容:

然后再修改一些代码加入新内容

可能此时你没有弄懂UP写这段内容的意思,我们回到游戏界面看一看,指向之前加载代码的文件,有没有看到多出了个Mode的选框,于是我们可以将红气球选择red,黑气球选择black,它们所执行的代码就不同了。

然后我们搞个黑气球,注意这里UP偷懒了,如果有美工千万不要学UP

再接下来我们修改下createBall文件,之前只会随机生成红气球,我们要增加黑气球,实现办法就是新建个gameobject,生成气球的时候判断生成红还是黑。

然后将blackBall的prefab拖入到界面里blackball的gameobject里面
最后还有一个地方要改一改,就是hitball,得分的界面,因为我们说点击blackBall扣血,所以

好了我们来测试一下

你会发现一件事,黑球是不是太多了点,所以我们可以调整下随机数

我们改成了这样,这个意思就是有30%的概率出现黑球
然后这款游戏基本上功能就差不多了,其实UP觉得写了这么多功能的游戏还是有一个玩点,就是早上起床的时候没睡醒可以玩一把用来提神,如果能配合闹钟一起启动然后点击多少分后才能解除闹钟效果更好( ´∀`)。

各种功能的写法
上一期UP说过,这种游戏其实可以补充很多细节的,不过UP就不再继续写下去了,开头序言时也有说过原因,不过呢UP会根据难度把一些功能作为题目,有兴趣大家可以跟着我的题目来练习,代码也可以在git里找到(git地址见一个人做游戏的第一期)。
第1题-高分气球:速度很快,放走不会受到伤害,只是点击到会加大量分
这种类型的气球和上面的黑气球是一个原理,只是初始速度更快,算是最简单的“搬砖”难度了
第2题-额外金币:炸弹气球飞出屏幕后会掉落下一颗快速飞出屏幕的金币,点击可以获得币
其实原理也很简单,首先要写一种快速下落的金币(气球是上升的,下落则反过来计算)
其他的也是可以搬砖完成
第3题-血包:点击后加1点血
这个基本上也是搬砖就可以完成的,UP都不再多解释,不过需要注意的是游戏里最大HP是3.
第4题-高分区域:在屏幕上留下一块区域,在区域内点击气球会获得高分
跟上面2个比起来稍微有点难度,其实原理是你要确定区域,再确定气球是否碰到到区域,如果在区域内被点击则给高分
第5题-炸弹道具:游戏里会给一个炸弹道具如果发现要死掉了,可以点击炸弹将全屏的气球消除
这个可能有点难,首先要动到UI按钮功能,炸弹个数计算,然后难点是如何清除气球,UP给个思路,gameobject.find这个功能还记得吗,查到所有叫某个名字的气球,再把它们全部删除就好了。
好了,UP给了5个练习给想学习的你们,如果能完成前3题,基本上算是程序入门了,如果能完成4说明你程序还有点厉害,如果5个题目全部完成了,相信也可以和UP一样写一些简单的游戏了。
总结
UP的做游戏系列就到这里暂时告一段落,刚开始的时候写的太难以及题材不是很好,还导致UP弃坑了一次,这一次才算找到了方向,做了个很好的入门教学。
当然,接下来UP也会继续发一些专栏文章,不过UP会再次回到策划上面,说一说游戏设计与游戏行业。