接下来是V2.5版本
【链接】
[无效] https://pan.baidu.com/s/1ieRdBYUydjNvaaqGhprfvg 提取码: nvrm
【效果图】


【游戏说明】
1、基本操作同V1.1版本
2、还是4个难度,难度设置在游戏菜单——选择难度中进行选择
3、食物有以下4种:
a.草莓:常规食物,效果:得分+1,身体长度+1。每吃掉一个立即刷新。
b.蘑菇:额外食物,效果:得分-5,若当前得分不足5分则直接死亡。随机刷新。
c.苹果:额外食物,效果:操作方向反转,持续3秒。随机刷新。
d.老鼠:额外食物,效果:得分+3,老鼠每0.5秒移动一次。随机刷新。
4、其他道具:
a.障碍物:碰撞障碍物等同于碰撞边界,直接死亡。
b.地洞:钻入其中一个地洞后,将穿越至另一个地洞出来。地洞的穿越效果同样适用于移动的老鼠。在完全离开某一个地洞前,再次进入该地洞将会碰撞自身。
5、地图关卡:
a.默认自带9个地图关卡配置(我自己编辑的,玩家也可以自行添加新的地图关卡,有多少个关卡配置文件就有多少关),从第1关到第9关,将逐步出现各种额外食物、更复杂的障碍物、地洞。满50分过关,并自动加载下一关。
b.通过关卡菜单或双击游戏背景进入地图编辑模式。该模式自定义关卡地图,对于每一关的地图,可设置以下内容:随意放置障碍物;随意放置两个地洞;随意设置3种额外食物随机刷新的概率。
c.地图编辑中的操作:
方向键——移动闪烁的障碍物单元;
空格键——确认在当前位置放置障碍物;
Shift键——在放置障碍物和放置地洞之间切换;
退格键——撤销上一步的放置;
回车键——保存当前编辑的结果,并生成地图关卡配置到文件;
ESC键——退出地图编辑模式。
【版本说明】
此版本为全局美化版本,应该不再更新了,除了没做得分统计,自认为可以算是一个比较完整的游戏了。
美化的过程中,因为要实现图片背景透明,所以把V1.1版本的PictureBox改成了Image。但当时有个问题,使用过多的Image加载图片,且每次移动都要更新图片,会使蛇在移动时偶尔出现闪烁(其实1楼的视频V2.0版本就有这个问题),因此,在V2.5版本中改成了更为高效更节约资源的算法。
再简单说下该版本的算法:
1、游戏开始前,对蛇的每一节身体进行编码,用一个数组记录从头到尾每个Image的Index
2、蛇头移动后,蛇尾直接移动到蛇头移动前的位置,身体其他位置无需移动
3、然后就是判断并更新蛇头、第二节身体、蛇尾的图形了,其他位置仍无需更新
4、如果吃到食物,则加载一个新的Image直接放到蛇头移动前的位置,取代第2步,原来的蛇尾也不用动了
5、重新排列记录身体编码的数组,数组第二项开始,每一项都把值传递给后一项,最后一项的值传递给第二项(这样才能随时知道第二节和最后一节Image的Index)
这种算法每次只需移动头尾两个Image,更新三个Image的图形,即使在蛇很长的时候也不太会出现闪烁了,游戏更加流畅。
为了彻底美化,使用了一个新的窗体自行制作了一个简单的MsgBox和InputBox。为保证兼容性、易用性和流畅度,美化没有使用任何外部控件。
此版本代码共740行,也全部加了很详细的注释。本人业余自学VB,当然不可避免会有写得不当之处,敬请大佬指点。