晚上看到一个非常有意思的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语言

我的知识小密圈

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

  1. 7-105 sdut-C语言实验——三个数排序7-106 sdut-C语言实验——模拟计算器7-107 sdut-C语言实验——找中间数

    目录 7-105 sdut-C语言实验--三个数排序 7-106 sdut-C语言实验--模拟计算器 7-107 sdut-C语言实验--找中间数 7-105 sdut-C语言实验--三个数排序 分数 ...

  2. c语言编程输出1000以内能被3整除的数,【C语言】找出1000以内可以被3整除的数

    分别用while,do-while,for语句实现 方法一:while #include int main() { int m; m = ; while (m<=) { if (m % == ) ...

  3. 易语言大漠找字FindStrE系列

    易语言用不了FindStrFast可以用此接口来代替,对于找字命令,如果你先二次分割遍历麻烦,建议使用FindStrFastE命令,此函数比FindStrE要快很多,尤其是在字库很大时,或者模糊识别时 ...

  4. 第六课 511遇见易语言大漠找字FindStrFastEx打多怪实例

    第六课 511遇见易语言大漠找字FindStrFastEx打多怪实例 推荐使用findstrFastEx 来找范围内全部符合要求的 老师的思路 在那个木人巷界面 开始在 人物的范围内开始找敌人名字 然 ...

  5. 判断字符串s1中是否包含s2字符串c语言,C语言:找出s1中是否存在字符串s2(C language: find out if string s2 exists in s1)...

    C语言:找出s1中是否存在字符串s2(C language: find out if string s2 exists in s1) 是否有任何C函数来检查s1中是否存在字符串s2? s1: &quo ...

  6. 第七课511遇见易语言大漠找色FindCloer游戏外挂实例

    第七课511遇见易语言大漠找色FindCloer游戏外挂实例 主要是讲解透明图的制作和适用范围 和找图函数的使用 没什么可说的 小知识:阿莫综合工具制作透明图的流程 大漠综合工具 载入图片后 放大 选 ...

  7. 第五课 511遇见易语言大漠找字FindStrE FindStrFastE系列

    小知识:为了保险 可以在窗口销毁事件 再加一重 窗口解绑的命令 免得忘记解绑或者中间出现异常导致的问题 小知识:常见的找字命令 和选择 易语言不要用 findstr findstrfast 因为这2个 ...

  8. c语言bmp找红点,20165111 学习基础和C语言基础调查(示例代码)

    第二次作业了.说好的作业效果有提升,可写完之后发现还是这样.希望大家多多谅解.还是那句话,内容有不当之处,欢迎指正! 首先先解释一下助教指出的那个问题:我的Markdown代码是在娄老师推荐的有道云笔 ...

  9. c语言给定整数求紧随素数,C语言:找出一个大于给定整数m且紧随m的素数,-求出能整除x且不是偶数的数的个数,...

    //函数fun功能:找出一个大于给定整数m且紧随m的素数,并作为函数值返回. #include #include #include int fun( int m) { int i,k; for (i= ...

最新文章

  1. hdu 1043 Eight 搜索,哈希
  2. 【Linux】11.将ubuntu电脑设置为一台可远程ssh或sftp访问的服务器
  3. Nexus安装及配置
  4. PHP学习笔记4:字符串与正则
  5. hdu 2473(并查集+删除操作)
  6. 修改 mybatis-generator 中数据库类型和 Java 类型的映射关系
  7. C++查看各种数据类型所占字节和最大最小值(数据范围)
  8. c语言如何删除数组中的某一个元素_数据结构之线性表高效删除重复元素
  9. 2017.10.10 狼和羊的故事 思考记录
  10. 缩时摄影制作软件——GlueMotion for Mac支持m1
  11. flowable 清除流程本地缓存
  12. C#海康解码器上大屏代码事例
  13. 137页Python学习笔记,全面总结看这一篇就够了
  14. MCU_通过windows串口API控制RTS和DTR
  15. 【MQTT】MQTT测试工具mqttfx和国内MQTT X工具下载
  16. jsp中java代码、jsp代码、js代码执行的顺序
  17. Android接入TapTap踩坑
  18. 现代电子计算机数学理论基础,知到食品营养学(暨南大学)2020网课答案
  19. Struts2 框架项目新建教程(strut 2.5.20)(基于IDEA)
  20. 伯努利大数定理(揭示了频率和概率的关系)

热门文章

  1. 结对开发:电梯调度(2)
  2. iOS开发篇——OC 协议和代理设计模式介绍
  3. 如何选择合适的Web安全网关?
  4. 小结三种控制路由发布的方法
  5. linux下软件的基本安装和卸载
  6. vb.net服务器启动后cpu占用了70_记一次服务器被异常程序占用的解决过程(怀疑黑客攻击)...
  7. 生物信息学概论_大学专业详解系列83——生物信息学(理学学士)
  8. Linux中python2和python3的pip设置 及清华安装源
  9. vb.net 窗体接收键盘事件_(十五)C#WinFrom自定义控件系列-键盘(二)
  10. HI3559A和AI深度学习框架caffe