今天跟大家伙儿唠唠我这几天搞的“弹砖块”小游戏,纯粹是自己瞎琢磨,没啥高深技术,就是个乐呵。
我寻思着这游戏的核心就是得把球弹出去,然后把砖头给干掉。所以第一步,我就先搞了个能发射小球的玩意儿。参考了以前玩过的游戏,我决定用一个底座,然后球从底座上发射。用代码实现起来也简单,就是监听鼠标点击,然后根据点击的位置计算一个发射方向,再给球一个初始速度。
球是发出去了,但是,没砖头打有个屁意思。所以接下来我就开始生成砖块。砖块的生成我用了个简单的网格布局,就是一行一行的码过去。颜色啥的也随机了一下,这样看起来不那么单调。砖块这玩意儿,得有血量,不然一下就没了,多没意思。我给每种颜色的砖块都设置了不同的血量,颜色越深的血量越高,这样就有点策略性了,得先打弱的。
球和砖头都有了,接下来就是让它们碰撞。这个碰撞检测我是直接用的 Unity 自带的碰撞器,简单粗暴。碰撞之后,球就得反弹,这个也简单,根据碰撞面的法线方向算一下就行。砖块被撞了就减血,血量没了就消失。消失的时候我还加了个小小的爆炸特效,看着爽。
光这样还不够,得有点难度才行。我加了个底座,让玩家可以左右移动底座来接住球。如果球没接住,掉下去了,那就 game over。底座的移动也很简单,就是监听键盘左右方向键,然后控制底座的水平位置就行。
玩了几次,发现球的速度太快了,有时候根本反应不过来。所以我就加了个速度控制,可以随时调整球的速度。我还加了个计分系统,打掉的砖块越多,分数越高。分数越高,难度也越高,砖块的血量也会增加。
为了增加点乐趣,我还加了几个道具。比如有个“多重球”道具,吃了之后可以发射多个球,那感觉,简直酸爽。还有个“激光”道具,可以直接把一条线上的砖块全部干掉。道具的生成也是随机的,隔一段时间就生成一个,让玩家有点期待感。
我还加了个简单的 UI 界面,显示分数、剩余生命值、当前关卡等等。界面丑是丑了点,但是能用就行。
整个游戏搞下来,也没啥特别难的地方,就是一些简单的物理碰撞和逻辑判断。但是,自己一点一点的把这个游戏做出来,感觉还是挺有成就感的。虽然现在还很粗糙,bug 也很多,但是以后有时间再慢慢完善。
- 搞了个底座发射球
- 生成一堆有血量的砖块
- 让球和砖块互相碰,撞掉砖块
- 加个底座让玩家接球,接不到就死
- 搞点道具增加乐趣
下一步计划
我想尝试加入更多的关卡设计,让游戏更有挑战性。 还有就是美术方面,现在这画面实在太简陋了,得找点素材美化一下。 争取让这个小游戏变得更好玩!
