当前位置:网站首页>全志V853开发板移植基于 LVGL 的 2048 小游戏
全志V853开发板移植基于 LVGL 的 2048 小游戏
2022-08-10 15:01:00 【51CTO】
项目源码获取: V853 Tina_LVGL Download
LVGL 开发实战
移植基于 LVGL 的 2048 小游戏
这一节将以一个已经编写好的 lvgl
小游戏 2048
描述如何将已经编写完成的 lvgl
程序移植到开发板上。
这里使用的 2048
小游戏由百问网提供,开源地址: lv_lib_100ask
准备脚手架
在这之前,我们先准备基础的 LVGL 脚手架。可以直接从 lv_g2d_test
里复制过来进行修改即可。
首先我们复制源码,在 platform/thirdparty/gui/lvgl-8
源码文件夹里,把 红色箭头 所指的 lv_g2d_test
的源码作为模板复制到 黄色箭头指向的 lv_2048
文件夹里。
如下图所示,并清理下 res
资源文件夹,
同样的,复制一份引索文件,找到 openwrt/package/thirdparty/gui/lvgl-8
并把 lv_g2d_test
复制一份重命名为 lv_2048
作为我们 2048
小游戏使用的引索。
脚手架快速获取: lv_g2d_test.file
并编辑 Makefile
,修改文件名称,把 lv_g2d_test
修改为这里的 lv_2048
完成脚手架的搭建后,可以 make menuconfig
里查看是否出现了 lv_2048
这个选项,选中它。
修改源码
第二步是修改源码。编辑之前复制的 main.c
文件,把不需要的 lv_g2d_test
的部分删去。保留最基础的部分。
接下来则是对接 lv_lib_100ask
与 2048
小游戏,我们先下载 lv_lib_100ask
的源码,放置到 platform/thirdparty/gui/lvgl-8/lv_2048
的 src
文件夹里。并按照 lv_lib_100ask
的说明,复制一份 lv_lib_100ask_conf_template.h
到 src
目录,并改名为 lv_lib_100ask_conf.h
编辑 lv_lib_100ask_conf.h
,开启整个库的引用,并配置启用 LV_USE_100ASK_2048
。为了简洁,这里删除了不需要的配置项。
再编辑 platform/thirdparty/gui/lvgl-8/lv_2048/src/lv_lib_100ask/lv_lib_100ask.h
中的版本号,修改为 (8,1,0)
之后在 main.c
里修改,对接 lv_100ask_2048_simple_test
,具体如下。
(1)头文件加入 lv_lib_100ask/lv_lib_100ask.h
(2)在 main
函数里添加接口调用
完整的 main.c
如下
然后就是 Makefile
修改,增加一个 lv_lib_100ask
的 SRC 引用。
顺便也把 BIN
改为 lv_2048
,完整的 Makefile
如下
对接触摸
做了以上操作,可能会发现触摸没有反应,这是因为触摸绑定的 event
事件号不对,默认的绑定是 event3
而查阅启动 log
可知,开发板的触摸屏对接的是 event0
这时需要修改绑定的 event
事件号,其配置文件在 lv_drv_conf.h
内:
这里将 event3
改为 event0
即可
当然除了这样的方法,另外也可以用命令生成软连接touchscreen
,就会直接以 touchscreen
为触摸节点,方便调试:
测试编译
修改好了,希望单独编译这个包测试下而不编译完整的 SDK。可以这样做:
(1)确保已经 source build/envsetup.sh
并已经 lunch
(2)在任意文件夹下执行命令 mmo lv_2048 -B
其中 mmo
的意思是 单独编译一个 openWrt
软件包,后面的 lv_2048
是软件包名。-B
参数是先 clean
再编译,不加这个参数就是直接编译了。
测试运行
编译打包后,到开发板上使用 lv_2048
即可运行
边栏推荐
- 全部内置函数详细认识(中篇)
- Parallels 将扩展桌面平台产品,以进一步改善在 Mac 上运行 Windows 的用户体验和工作效率
- 解读STEAM教育中的表现性评价
- Websocket realizes real-time change of chart content
- 富爸爸穷爸爸之读书笔记
- 电脑重装系统提示activex部件不能创建对象如何解决
- Mysql语句分析、存储引擎、索引优化等详情
- It is reported that the original Meitu executive joined Weilai mobile phone, the top product may exceed 7,000 yuan
- 自定义picker滚动选择器样式
- 【数仓设计】企业数仓为什么要进行分层?(六大好处)
猜你喜欢
随机推荐
波士顿房价预测
fatal error C1083 无法打开包括文件'io.h' No such file
网络安全(加密技术、数字签名、证书)
推荐几款最好用的MySQL开源客户端,建议收藏!
常见SQL、API接口等常见约定
websocket实现实时变化图表内容
640. 求解方程 : 简单模拟题
Zijin Example
无线网络、HTTP缓存、IPv6
Custom picker scroll selector style
[Letter from Wu Enda] The development of reinforcement learning!
MySQL 原理与优化:Update 优化
消息称原美图高管加盟蔚来手机 顶配产品或超7000元
640. Solving Equations: Simple Simulation Problems
BCG库简介
JS 从零手写实现一个bind方法
Programmer = overtime??- Master the time to master the life
fastposter v2.9.1 programmer must-have poster generator
redhat替换yum源时redhat.repo无法删除或无法禁用的问题解决方法
MySQL批量更新与批量更新多条记录的不同值实现方法