首页 文章详情

熬夜给这个C语言游戏项目找了几个bug

嵌入式Linux | 457 2021-09-03 09:21 0 0 0
UniSMS (合一短信)

晚上看到一个非常有意思的C语言游戏项目,这个项目完全都是用C语言写的,而且资料也比较齐全,有github资料,也有QQ群。


它的项目介绍是这样的:



哦,还有它的官网


http://painterengine.com/index.html


还有它的github链接


https://github.com/matrixcascade/PainterEngine


那它可以用来干嘛?


如果你继续往下看,就可以看到,它其实就是用C语言来画图的一个框架,给开发者整合了很多好用的封装接口。关键是都是用C编写的。



更关键的是,它可以跨平台,在很多主流平台上面都有代码


谁说不是呢,C语言是非常优秀的跨平台语言,如果是用C写的,我认为可以在任何平台上面运行。这里别抬杠哈。








看到这么优秀的东西,我赶紧就想试试手,代码下载下来了,赶紧就想玩玩。


先看代码框架



第一个是架构相关的

第二个是核心

第三个是内核

第四个是我们关心的,里面分了很多平台,我是在Linux平台,我看重了Linux


第五个 project 是工程代码,我们实际项目的代码在这里,但是编译却不是在这里哦。


编译前先要在ubuntu 下安装依赖库


sudo apt-get install build-essential freeglut3 freeglut3-dev binutils-gold


我先说明,不装的话,编译肯定是出错。


你安装了之后,编译也会出错~~~~~~



因为它的makefile写的有问题


需要修改成


diff --git a/platform/linux/makefile b/platform/linux/makefile
index d3fb1c5..b995da0 100644
--- a/platform/linux/makefile
+++ b/platform/linux/makefile
@@ -29,7 +29,7 @@ all:$(project_build_o)  $(painterengine_build_painterengine_o)
        -I "$(painterengine_path)" \
        -I "$(project_path)" \
        -I "$(painterengine_path)/platform/linux" \
-       -L. -lGL -lglut
+       -L. -lGL -lglut -lpthread


 $(project_path)/%.o:$(project_path)/%.c


看吧,少了个-lpthread核心的代码。


这个时候,我可以编译通过了,说明我们这个SDK运行通过了,显示就是一个空白,这个给个建议,如果最后显示一个helloworld会不会更棒。




然后我就想测试一个吃豆人来玩玩。


如果要运行某个例程,就需要把这个例程的代码下载替换掉sdk中project部分的代码,然后再去platform对应的平台下编译。



结果又编译错误~~~


然后又继续排查,找到了问题,运行出来了。



so,


为了方便大家学习,把修改的内容放github上了。


https://github.com/weiqifa0/PainterEngine


下载运行我这个,应该不会有错误~~


里面还有很多好玩的东西,我觉得都可以去试试~~



这个项目确实非常有意思,作者还有配合B站的一些视频,我觉得都很不错,特别是刚入门学习C语言的同学,这个真的是个很好的资料,还可以做点好玩的东西来用。


至于项目部分,因为框架是用C做的,可以运行在很小的MCU上,这也是一个亮点。


好了,这次真的干到深夜了。








推荐阅读:


专辑|Linux文章汇总
专辑|程序人生
专辑|C语言
我的知识小密圈
good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter