今天跟大家唠唠我前两天折腾的“星球突击队”小游戏,别误会,不是啥高科技,就是用Unity捣鼓的一个小玩意儿。
事情是这样的,那天闲着没事,突然想起小时候玩的4399小游戏,里面有个叫“星球突击队”的,当时觉得老好玩了。我就寻思着,能不能自己也做一个类似的,回忆一下童年。
说干就干,是打开Unity,新建了个2D项目。然后就开始找素材,在网上扒拉了一些简单的飞船、敌机、子弹的图片,都是免费的,质量就那样,能用就行。实在不行,自己用画图软件随便画两笔。
接着就是码代码了,这块儿是最头疼的。我的C#水平也就半吊子,遇到问题就百度、CSDN,各种搜。先是写了个飞船控制脚本,控制飞船移动和发射子弹。这部分还算简单,主要就是监听键盘输入,然后控制Transform的位置和创建子弹Prefab。
然后是敌机部分,敌机的AI稍微复杂点。我先是让敌机随机生成,然后朝飞船方向移动。为了增加难度,还加了敌机发射子弹的功能。这里用到了简单的寻路算法,让敌机不会傻乎乎地撞墙。
碰撞检测也是个麻烦事。要判断子弹是否击中敌机,敌机是否撞到飞船。Unity自带的碰撞检测系统挺好用的,只需要给物体添加Collider组件,然后实现OnCollisionEnter2D方法就行了。
为了让游戏有点挑战性,我还加了血量系统和得分系统。飞船被敌机击中会减少血量,血量为0就游戏结束。击毁敌机会增加得分,得分越高,游戏难度也会相应增加。
是UI部分,用Unity的Canvas做了个简单的UI界面,显示血量、得分和游戏结束界面。UI这块儿我不太擅长,界面比较简陋,凑合着用。
整个过程大概花了两天时间,大部分时间都在调试BUG。Unity这玩意儿,稍微有点错误,就会报错,烦死个人。不过看到游戏跑起来,还是挺有成就感的。
- 1,确定游戏类型和核心玩法,找好素材。
- 然后,编写飞船控制脚本、敌机AI脚本、子弹脚本等。
- 接着,实现碰撞检测、血量系统、得分系统。
- 3,制作UI界面,进行测试和调试。
这回做“星球突击队”小游戏,虽然技术含量不高,但让我回忆起了童年,也巩固了一下Unity的基础知识。以后有机会,再尝试做一些更复杂的游戏。
各位如果也想自己做游戏,不妨从简单的开始,一步一个脚印,慢慢积累经验。