Codesys 开发推箱子小游戏
一、开发目的
1、用梯形图搭建动作逻辑,用 ST 语言编写运算及逻辑分析,利用各编译模
式的优势,混搭实现开发功能。
2、模仿其他高级语言功能(Vb,C 等),对比其中的差异性及关联性,看
是否具有相通或可替代性。
二、实现功能
使用 Codesys 各编译模式,开发推箱子小游戏,实现游戏基本功能,包括关
卡游戏,关卡编辑,重置等。
三、编程思路
要实现推箱子游戏主要包括以下内容:
1、关卡数据:不同的关卡有不同的图形排列方式,图形有墙壁,箱子,目
标红旗,推箱小人;
实现方法:关卡图形可以用数组记录,用三维数组记录所有数据,三维分别
代表各图形的 X 坐标和 Y 坐标,以及对应的关数,通过 X,Y 坐标对应数据的数
值来确定图形的样子,设定墙壁=20,箱子=10,目标红旗=1,推箱小人=5,则关
口数据[2,3,1]=20,表示 X 轴第 3 列,Y 轴第 4 行,关数是第 2 关(数组计数从 0
开始),即第 2 关第 3 列第 4 行的位置是一堵墙;
2、图形移动:游戏中需要推箱小人一直移动,而箱子也需要对应的移动;
实现方法:Codesys 可视化中,可以改变图形的绝对运动的 X 坐标 Y 坐标来
控制图形的移动,而作为软 PLC,Codesys 可以使用两个伺服轴来模拟图形的 X
轴和 Y 轴坐标。
3、操作方式:游戏的操作性,即如何操作实现游戏功能;
实现方法:使用上下左右 4 个按键控制小人移动及推进箱子,通过重新开启
按钮复位。
4、关卡编辑:自定义的关卡就是需要用户自行编辑;
实现方法:使用数组记录关卡数据,通过改变数组的值就能实现关卡的编辑
功能。
5、其他功能:
a、通关显示:通过目标位置数值判断是否完成,显示提示,并跳出下一关;
b、选关功能:改变关卡对应的数值,选关。
四、程序编写
程序编写主要包括:
1、创建多个 POU,有梯形图编译模式和 ST 结构化文本编译模式两种,梯形
图编写动作程序,ST 语言编写数据计算和逻辑分析程序等,本例创建 3 个固定
关卡,以及 2 个预制关卡供编辑是快速输入用;
2、创建两个虚轴,X 轴,Y 轴,显示图形移动的实际变化;
3、创建两个可视化界面,界面一为游戏操作界面,界面二为关卡编辑界面;
- 1
- 2
- 3
前往页