晚上看到一个非常有意思的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语言
我的知识小密圈