UP-MOBNET-Ⅱ型实验箱移植俄罗斯方块游戏实验

UP-MOBNET-Ⅱ型实验箱移植俄罗斯方块游戏实验

实验箱型号



名称 移动互联网教学科研平台Ⅱ型
型号 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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

GAMEOVER

在这里插入图片描述

6、卸载U盘
U盘大的可能时间长一点十多秒

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Lazy_Goat/article/details/117150698