本来是同RGB点阵实现的但这个项目由于没有硬件支持,所以用VS写代码,再用QT写个界面模拟一下。
先看一下可以实现的功能:
所有的猎物都以LED矩阵屏幕的像素点形式出现,健康猎物-绿色,带病猎物-紫色(红色加蓝色)有毒猎物红色,蛇一连串的像素点构成:蛇头是一个蓝色的像素点,蛇尾是一系列情色(绿蓝)像素点 游戏统计信息显示在LCD点阵屏上。
当系统复位商店后LCD顶部显示出玩家零统计和零计时,LED矩阵屏幕出现游戏界面(随机在游戏区域内出现猎物)当摇杆俺就被按下,游戏开始(更换一批猎物),游戏开始计时,这是,在游戏区域中随机分布和配数10个猎物,大概比例为45%健康,45%带病,10%死亡的,猎物不能在另一个猎物上出现,也不能在蛇段上出现。
游戏开始时,是以一个像素点的头的形式出现在随机位置(不包括目标位置),舍得行动随着摇杆开始运动开始,蛇的移动速度可以设定,迷人设置一个像素每秒,蛇时以直角的形式进行转弯,当猎物被蛇头吃掉时:被捕获的猎物消失,一个新猎物出现(随机的位置以及类型),舍得 长度增加一个像素点,玩家的得分变化,蛇头运动到被捕猎的猎物位置上。玩家得分情况是显示补货的健康猎物(后缀h)和带兵的猎物(后缀i)的数量来体现。蛇最大能够增加24个像素点长度包括头,移动时蛇必须沿着他的爬行轨迹,其中蛇头是由摇杆控制其偏离情况。是不能向后运动和跨越身体。
如果玩家将蛇推向死局时——当蛇头被蛇身围死且阻挡了运动方向,这时游戏停止,并且在LCD上显示“dead lock”事件,当捕捉了一个有毒的猎物后“game over”事件出现,游戏结束并且在LCD上显示该事件。游戏结束时,玩家的计时固定下来,显示出得分结果(捕捉的健康猎物减去不会做的带病猎物),并且停止蛇的任何移动。重新开始游戏——在“game over”和“dead lock”事件时按下摇杆按钮。
在游戏过程中按下摇杆按钮,游戏暂停并进入菜单设置模式,LCD显示信息,并使用摇杆设置菜单由“是否可以穿墙”(through wall ?)和“蛇移动速度”(speed)两个选项,可以通过摇杆上下设置,如果玩家设置了Yes,那么蛇可以从墙的一边直接到另一边出来(LED屏幕的边缘)。在速度模式中,玩家可以通过摇杆上下对速度进行加减,没修改一次改变0.5像素,最小1最大到4.菜单模式中任何时候按下摇杆按钮,游戏返回并继续。
查看排行榜——在游戏开始前或者“游戏结束 game over”事件时,玩家可以通过摇杆左右移动查看排行榜,可以查看历史4个最高分,摇杆左右切换查看排行榜页面和返回游戏界面。
(这其实就是世界技能大赛的国赛项目,哈哈)
这是效果图。下面上代码: