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

它的项目介绍是这样的:

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

哦,还有它的官网

​​

还有它的github链接

​​

那它可以用来干嘛?

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

熬夜给这个C语言游戏项目找了几个bug_人工智能_02

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

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

熬夜给这个C语言游戏项目找了几个bug_编程语言_03


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

先看代码框架

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

第一个是架构相关的

第二个是核心

第三个是内核

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

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

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

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

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

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

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

熬夜给这个C语言游戏项目找了几个bug_人工智能_06

因为它的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会不会更棒。

熬夜给这个C语言游戏项目找了几个bug_人工智能_07

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

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

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

结果又编译错误~~~

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

熬夜给这个C语言游戏项目找了几个bug_人工智能_09

so,

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

​​

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

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

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

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

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

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