UP-MOBNET-Ⅱ型实验箱移植俄罗斯方块游戏实验
实验内容:
实验熟悉试验箱开发环境和烧写流程、交叉编译原理和程序移植。
硬件:
UP-MobNet-II 型平台、12V 电源线、串口线、USB 数据线
软件:
Xshell、fastboot.exe、fastboot.bat、WinImage.exe
这里就不再赘述,之前已经写过
连接在下面
游戏操作:
左右方向键控制方向
上方向键改变方块形状
下方向键加速下落
字母Q键退出游戏
空格键暂停游戏
对应函数与枚举类型:
获取用户操作:
主函数中: 可变化的样式(即改变方向): 例如: 用于实现的函数:当方块当前位置改变方向后不越界即可 方块的移动:
通过左,右,下方向键控制
相关函数:
用到的一些知识点:
定时器:
struct itimerval{
struct timerval it_value;
//从设定定时器开始计算,到第一次定时器生效的时间
struct timerval it_interval;
//每两次定时器生效的时间间隔
}
struct itimerval timer{ {x},{y}}
//本次闹钟为x秒后,下一次闹钟为y秒后
setitimer(定时器类型,指定定时器,旧定时器)
用于方块下落的时间间隔
信号:
signal(要处理的信号类型,对信号的处理方法)
随机数:
strand(time(null))
//初始化随机数发生器
使用rand()来创建随机数
0<=rand()%7<7
所以可以用于方块种类的随机变换
初始化游戏区域:
void initalGameArea():
arm-none-linux-gnueabi-gcc -o tetris Tetris.c
1、把main拷贝到U盘
2、把U盘插入实验箱对应的插口
插入以后实验箱打印如下信息: 3、查看U盘信息
命令: fdisk -l 4、挂载U盘
命令:mount -t vfat /dev/sda4 /mnt 5、运行程序
U盘大的可能时间长一点十多秒
实验箱型号
名称 | 移动互联网教学科研平台Ⅱ型 |
---|---|
型号 | UP-MOBNET-Ⅱ |
编号 | 03019024 |
批号 | 32017040520 |
实验内容和材料准备
实验内容:
实验熟悉试验箱开发环境和烧写流程、交叉编译原理和程序移植。
硬件:
UP-MobNet-II 型平台、12V 电源线、串口线、USB 数据线
软件:
Xshell、fastboot.exe、fastboot.bat、WinImage.exe
环境准备
这里的环境准备,主要还是交叉编译环境和实验箱环境的烧写;这里就不再赘述,之前已经写过
连接在下面
程序逻辑实现
俄罗斯方块游戏操作:
左右方向键控制方向
上方向键改变方块形状
下方向键加速下落
字母Q键退出游戏
空格键暂停游戏
对应函数与枚举类型:
获取用户操作:
在主函数中获取用户操作的部分:
函数drawBlock用于构建当前方块和下一个方块
主函数中: 可变化的样式(即改变方向): 例如: 用于实现的函数:当方块当前位置改变方向后不越界即可 方块的移动:
通过左,右,下方向键控制
相关函数:
用到的一些知识点:
定时器:
struct itimerval{
struct timerval it_value;
//从设定定时器开始计算,到第一次定时器生效的时间
struct timerval it_interval;
//每两次定时器生效的时间间隔
}
struct itimerval timer{ {x},{y}}
//本次闹钟为x秒后,下一次闹钟为y秒后
setitimer(定时器类型,指定定时器,旧定时器)
用于方块下落的时间间隔
信号:
signal(要处理的信号类型,对信号的处理方法)
随机数:
strand(time(null))
//初始化随机数发生器
使用rand()来创建随机数
0<=rand()%7<7
所以可以用于方块种类的随机变换
初始化游戏区域:
void initalGameArea():
编写游戏程序
data.h
Tetris.c
交叉编译
在安装Gcc的redHat上新建一个目录:Tetris.c、data.h在同一目录下arm-none-linux-gnueabi-gcc -o tetris Tetris.c
交叉编译生成tetris
移植和演示程序
这里也使用U盘挂载方式来移植程序1、把main拷贝到U盘
2、把U盘插入实验箱对应的插口
插入以后实验箱打印如下信息: 3、查看U盘信息
命令: fdisk -l 4、挂载U盘
命令:mount -t vfat /dev/sda4 /mnt 5、运行程序
命令:./tetris
U盘大的可能时间长一点十多秒