今天心血来潮,想搞个小游戏玩玩,就琢磨着做个类似泡泡龙的玩意儿。小时候玩过不少这种游戏,感觉挺有意思,这回自己动手试试看!
先在网上搜搜,看看别人都咋做的。发现好多类似的游戏,《层层射击》、《宠物泡泡龙》、《单机泡泡龙》等等,名字都起得一个比一个花哨。不过玩法都差不多,就是发射泡泡,三个以上相同颜色的泡泡碰一起就消除。
我大致看看,感觉这些游戏的核心就是几个部分:
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
我先画个草图,把游戏界面简单设计一下。上面是堆叠的泡泡,下面是发射台,中间用线连起来表示发射的轨迹。然后就开始一步步实现。
生成泡泡这块,我用一个二维数组来存储泡泡的位置和颜色。这样查找起来比较方便。然后写个随机函数,生成不同颜色的泡泡,再把它们填到数组里。
发射泡泡这块,我用鼠标来控制发射方向。点击鼠标的时候,就从发射台的位置,沿着鼠标点击的方向,把泡泡发射出去。
碰撞检测这里稍微麻烦一点。我一开始想的是,直接判断泡泡之间有没有重叠。但后来发现,这样计算量有点大,而且效果不太后来改成,先判断泡泡会和哪一行的泡泡碰撞,再判断具体和哪个泡泡碰撞。这样就快多。
消除泡泡这里,我用一个叫做“广度优先搜索”的方法。从被击中的泡泡开始,找到所有和它颜色相同,且相邻的泡泡,然后把它们一起消除掉。这名字听起来挺唬人,就是一圈一圈往外找,把符合条件的都找出来。
判断游戏结束。如果泡泡堆满屏幕,或者玩家把所有泡泡都消除,游戏就结束。然后显示一个“Game Over”或者“You Win”之类的提示。
经过一番折腾,总算把基本功能都实现。虽然画面简陋点,但玩起来还挺有意思的。看着自己做出来的东西,心里还是有点小得意的!哈哈!
还可以继续完善一下。比如加点音效、动画效果,或者设计一些特殊的泡泡,增加点难度啥的。不过今天就先到这,改天再继续折腾!