Labview邪修01:贪吃蛇
从博主很小的时候就在掌机上玩过这个贪吃蛇的小游戏,突然有一天心血来潮的想Labview是不是也可以编这个小游戏,回忆一下童年!然后就又了下面的这个程序,执行结果如下图所示。
基本功能:
1)点击开始按钮,可以随机生成长度为3的蛇和食物;
2)可以调整蛇的移动速度,低速、中速、高速;
3)键盘上的方向按钮可以控制蛇的运动方向;
4)游戏结束的条件:蛇头撞到边界或自己身体;
运行环境:
Labview 2020(32位)
1.1 界面设计
1.1.1 显示控件
下图是界面中露出的控件:
1)游戏界面,添加了颜色盒的二维数组
经典颜色盒,右击->经典->经典数值->经典颜色盒;
然后将颜色盒拖拽到数组中,形成游戏界面。
2)添加速度控制控件
枚举,右击->银色->下拉列表与枚举->枚举;
然后编辑,慢速、中速、快速。
3)添加按钮
添加两个按钮,开始、结束。
1.1.2 局部变量
界面中没有露出的控件:
蛇坐标,U32类型的二维数组,用于存储蛇的坐标;
3个颜色盒,分别用于设置游戏背景、Food颜色、蛇颜色;
方向控件,枚举控件,上、下、左、右四个内容,用于显示蛇的运动方向;
Food位置,U32类型的一维数组,用于存储Food位置;
Start?布尔显示控件,用于显示是否开始,若开始对蛇的位置实时显示、判断;
1.2 程序编写
程序的流程图如下所示:
1.2.1 项目结构
Main.vi,是整个程序的入口vi;
Start.vi,点击开始按钮执行的vi,是用来初始化蛇的位置和食物的位置;
SnakePos.vi,用于计算蛇的位置;
Loop.vi,用于执行超时事件中的内容;
Crash.vi,用于判断蛇是否撞击边框或自己,游戏结束;
FormCtrl.ctl,界面控件的引用组成的自定义控件;
1.2.2 开始事件
1)开始事件中的内容
主要是调用Start.vi。
2)Start.vi中的内容
自动生成蛇的位置和食物的位置,并且根据位置修改游戏界面中对应位置的颜色。
1.2.3 结束事件
点击结束按钮,即结束游戏并且弹出等分情况。
1.2.4 键按下事件
读取键盘上的方向按键状态,按下后修改蛇的运动方向。
1.2.5 超时
1)超时事件
如果Start?是true,就调用Loop.vi
2)Loop.vi中内容
3)SnakePos.vi中内容
根据方向计算蛇下一步的坐标。
4)Crash.vi中内容
根据蛇的位置判断是不是碰撞,如果碰撞,输出等分情况,并且停止游戏。
1.2.6 关闭前面板
1.3 运行
先选择速度,点击开始按钮,就会随机出现蛇和食物。然后按键盘上的上下左右按键,可以控制蛇方向,蛇与食物 相碰就会吃掉食物,相应的蛇会变长,如果蛇碰撞到边框或者自己的身体就会结束游戏,并且弹出等分。
源码下载链接->https://download.csdn.net/download/weixin_38637405/91802779