前段时间我也不知道哪来的勇气,竟然雄心勃勃要设计一款拯救泡泡鱼的小游戏,梦想着流量暴涨的美好远景,动手设计实现了好几种玩法,找了批朋友玩了下,原本满怀期望却被吐槽声淹没了。沉寂了一段时间,有天突然发现微信朋友圈里一直出现塔防小游戏的广告,心血来潮,要不也弄个塔防游戏试试。这次我学乖了,网上找了个现成的塔防小游戏叫《FieldRunner》,决定按照它的思路重新实现了一遍。
本篇文章通过讲解copy一款塔防游戏的经历,讲解里也包含着一些设计思路,希望能帮到想要开发小游戏的爱好者们。游戏一些代码以及设计思想借鉴了其它作者的,我指出这个只是想告诉大家学习别人的作品是游戏入门的捷径。
游戏参考图:
说明
1.文章里代码示例基于egret游戏引擎,我会尽量减少使用引擎api带来的阅读影响。若仍不是很清楚,请访问egret引擎guanfangwangzhan。
2.讲解代码使用的语言是typescript,代码中egret对象是由游戏引擎提供。
3.文章里的代码只是示例,只保留了关键代码,不能保证正确运行。
设计
记得大学期间经常喜欢跟室友一起玩塔防游戏,这个游戏里玩家建造各种防御塔抵御敌人一批一批的进攻,守护好基地。每次开局看到大批敌人进攻,我就拼命的造防御塔,不把屏幕填满无法抚慰我不安的心。
我们回头看下上面的游戏场景,一群敌人士兵从左边出发进攻基地,玩家在地图各个位置几乎满屏放置了大量的格林机枪炮塔,拦截打击阻止敌人进攻趋势,期间有敌人不断爆炸死亡。游戏上一栏是金币、分数、游戏轮次、玩家(基地)血量,下一栏是暂停、快进、武器种类。