# gec6818方块贪吃蛇
作者联系方式 2524913364@qq.com
演示视频链接:https://www.bilibili.com/video/BV11g41117o9?spm_id_from=333.999.0.0&vd_source=eb58f23d38b7fe03224ae28fbb507a12
#### 介绍
基于 gec6818 的贪吃蛇项目,不一样的贪吃蛇哦。(触摸屏状态机的代码不是很完善,所以操作的时候会有点“不灵敏”)
#### 软件架构
* >> "视野":
lcd的屏幕中取 480*480 来显示游戏界面,这个 480*480 的范围也就是 “视野”(下面需要多次用到这个概念)。
地图的实际大小是视野的四倍即 960*960。随着蛇头的移动视野也会移动,直到视野移动到地图边界。
* >> “方块” 和 “区块”:
将 960*960 的范围划分成 32*32 的许许多多的小格,这些小格称为 “方块”。(跟方块相关的变量名会带有 “block” 或者 前缀 "b_")
将 960*960 分成四块(0~3) 480*480 ,每块称为 “区块”,区块内的哥哥方块同属一个区块。(跟区块相关的变量名会带有 “blockGroud” 或者 前缀 "bg_")
方块是物体的概念,比如:蛇头方块、蛇尾方块、食物方块、墙方块...方块里这些不同的物体也会有进一步的划分。
区块是游戏加载的单位,比如判断贪吃蛇是否吃到东西时,只会判断蛇头所在的区块范围内的物体,如此是为了能够不必每次都判断所有的物体,提高性能。
注意:“蛇本身也是作为一个区块来看待,因此除了地图划分的四个区块以外还有第五个‘蛇区块’”。
* >> “方块坐标” 和 “实际坐标”
整个地图被划分为很多个 “方块”,比如 960*960 的地图按照 32*32 划分成 30*30 个方块,如此每个方块都有个自己的 “方块坐标”,x 和 y 坐标范围都是
0~29一共三十个。而 “实际坐标” 就是lcd的坐标 480*800 的了。
为了代码逻辑的简化,都是使用 “方块坐标” 作判断,到了显示的时候才换算成 “实际坐标”。
而且方块坐标又可细分为,地图的方块坐标和视野的方块坐标。
实际坐标也可细分为,地图的实际坐标和lcd的实际坐标。
坐标间的换算在文件 app_snake.h 中会有介绍。
#### 安装教程
< 只需要文件夹 project 里的文件就行 >
1. 进入到文件夹 project (看到有Makefile文件的目录)
2. 在ubuntu用 Makefile 编译项目。输入命令 make,如图
![输入图片说明](README_pic/make%E5%91%BD%E4%BB%A4.png)
3. 要下载到开发板的文件有:
./bin/main (编译完的可执行文件)
./data (项目的所有图片、音乐等文件所在的文件夹)
注意 mian 和 data 在开发板中是在同一级目录,如下图:
![输入图片说明](README_pic/11.png)
#### 使用说明
1. 在开发板修改了可执行文件的权限后直接运行可执行文件
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
gec6818 在Linux的内核中,对输入设备的使用,实际上运用了3大块来管理,他们分别是所谓的输入设备驱动层、输入子系统核心层,以及事件触发层。他们各自的工作分别是: 输入设备驱动层: 每一种设备都有其特定的驱动程序,他们被妥当地装载到操作系统的设备模型框架内,封装硬件所提供的功能,向上提供规定的接口。 核心层: 此处将收集由设备驱动层发来的数据,整合之后触发某一事件。 事件触发层: 这一层是我们需要关注的,我们可以通过在用户空间读取相应设备的节点文件来获知某设备的某一个动作。 以触摸屏为例,当手指在屏幕上滑动的时候,数据流大致是这样的:驱动层中的触摸屏驱动会源源不断地产生触摸屏相关数据,并向上递送给内核输入子系统,输入子系统进一步将这些信息规整为统一的结构体,并借助事件触发层发往对应的设备节点,至此,应用程序即可从这些设备节点读取相关信息。 值得注意的是,底层驱动产生的设备数据与上层应用读取设备数据是两个完全异步的过程,彼此之间是没有耦合和约束的,例如:当底层驱动产生的触摸屏坐标信息比应用层读取的速度要快时,应用程序将会丢失一部分坐标信息。
资源推荐
资源详情
资源评论
收起资源包目录
基于 gec6818 的贪吃蛇项目,不一样的贪吃蛇哦.zip (56个子文件)
新建文本文档.txt 2KB
gec6818-square-greedy-snake-master
README_pic
11.png 3KB
make命令.png 106KB
.keep 0B
.gitignore 82B
README.en.md 979B
README.md 3KB
project
include
lcd.h 11KB
app_snake.h 15KB
file_operation.h 2KB
fonts.h 2KB
app_snake_LinkList.h 4KB
touch_screen.h 3KB
app_snake_file.h 5KB
Makefile 957B
src
touch_screen.c 25KB
lcd.c 35KB
fonts.c 353KB
app_snake_file.c 12KB
file_operation.c 8KB
app_snake.c 38KB
main.c 2KB
app_snake_LinkList.c 11KB
data
rank.txt 0B
snake
goods
food.bmp 3KB
poison.bmp 3KB
wall.bmp 3KB
body
3_2.bmp 3KB
1_3.bmp 3KB
1_2.bmp 3KB
1_4.bmp 3KB
3_3.bmp 3KB
3_4.bmp 3KB
2_0.bmp 3KB
3_1.bmp 3KB
1_1.bmp 3KB
interface
run.bmp 19KB
bgm_OFF.bmp 19KB
health.bmp 19KB
bgm_ON.bmp 19KB
up.bmp 19KB
right.bmp 19KB
down.bmp 19KB
suspend.bmp 19KB
left.bmp 19KB
health_off.bmp 19KB
back.bmp 19KB
background
wallpaper.bmp 2.64MB
grass1.bmp 3KB
grass2.bmp 3KB
introduction
intro_1.bmp 1.1MB
bgm
snake_bgm1.mp3 662KB
rankdata.txt 0B
README.txt 1KB
bin
main 127KB
项目介绍.png 226KB
共 56 条
- 1
资源评论
野生的狒狒
- 粉丝: 2321
- 资源: 2037
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (2005-2014期间)中国环境统计年鉴
- 2015高中信息技术excel操作题及素材(精品文档).xls
- SW3518S全协议快充USB Type-c接口电源模块硬件参考设计评估版硬件(原理图 +pcb)+封装库文件.zip
- 基于深度强化学习算法实现多星对区域目标观测的规划python源码+数据集+模型+超详细注释.zip
- RT1052+SDRAM(IS42S16160) +SIM7600CE(PCIE接口封装)控制板硬件(原理图+PCB)+封装库
- 2017大学英语四级词汇-excel-列表版(精品文档).xls
- 2017版国家医保药品目录(excel版)完整版.xls
- 基于STM32F103单片机设计的无刷电机控制板硬件(原理图+PCB+BOM)+MCU软件控制源码+文档资料.zip
- 肺结节检测数据集VOC+YOLO格式1186张1类别.zip
- Faster-RCNN基于知识蒸馏的目标检测模型增量深度学习方法python源码+项目运行说明.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功