返回列表 发布新帖
查看: 222|回复: 5

[Raylib教程#] 【Raylib&C++教程01期】介绍+环境搭建+官网开源学习

18

主题

98

回帖

1614

积分

管理员

Game/IT developer

积分
1614

一周年纪念

发表于 2025-3-29 10:40:01 | 查看全部 |阅读模式
Part 1:什么是Raylib
在讲Raylib之前,你需要知道森么是OpenGL。
      OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来绘制从简单的图形到比较复杂的三维景象。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。OpenGL的高效实现(利用了图形加速硬件)存在于Windows,部分UNIX平台和Mac OS。
        当今,OpenGL是视频行业领域中用于处理2D/3D图形的最为广泛接纳的API,在此基础上,为了用于计算机视觉技术的研究,从而催生了各种计算机平台上的应用功能以及设备上的许多应用程序。其是独立于Windows操作系统以及操作系统平台,可以进行多种不同领域的开发和内容创作,简而言之,其帮助研发人员能够实现PC、工作站、超级计算机以及各种工控机等硬件设备上实现高性能、对于视觉要求极高的高视觉图形处理软件的开发。——摘自  百度百科


是不是听上去很库?OpenGL兼容了众多主流操作系统,且有多个编程语言的应用接口(API),是当今主流两个图形渲染库之一(另一个是仅用于Microsoft Windows上的Direct3D)


(注:本系列基本使用C++语言经行开发。)


不过,作者个人觉得OpenGL的函数非常友好。举个例子,下面是用OpenGL绘制一个立方体的部分程序源代码:
    glClearColor(1.0, 1.0, 1.0, 1.0);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3f(1.0, 0.0, 0.0);
    gluLookAt(0.0, 0.0, -10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0);
    glBegin(GL_QUADS);
    {
        glVertex3f(0.5, 0.5, 0.5);
        glVertex3f(-0.5, 0.5, 0.5);
        glVertex3f(-0.5, -0.5, 0.5);
        glVertex3f(0.5, -0.5, 0.5);
    }
    glEnd();
    //左面
    glBegin(GL_QUADS);
    {
        glVertex3f(-0.5, 0.5, 0.5);
        glVertex3f(-0.5, 0.5, -0.5);
        glVertex3f(-0.5, -0.5, -0.5);
        glVertex3f(-0.5, -0.5, 0.5);
    }
    glEnd();
    //下面
    glBegin(GL_QUADS);
    {
        glVertex3f(-0.5, -0.5, -0.5);
        glVertex3f(-0.5, -0.5, 0.5);
        glVertex3f(0.5, -0.5, 0.5);
        glVertex3f(0.5, -0.5, -0.5);
    }
    glEnd();
    //右面
    glBegin(GL_QUADS);
    {
        glVertex3f(0.5, -0.5, -0.5);
        glVertex3f(0.5, -0.5, 0.5);
        glVertex3f(0.5, 0.5, 0.5);
        glVertex3f(0.5, 0.5, -0.5);
    }
    glEnd();
    //前面
    glBegin(GL_QUADS);
    {
        glVertex3f(-0.5, 0.5, 0.5);
        glVertex3f(0.5, 0.5, 0.5);
        glVertex3f(0.5, -0.5, 0.5);
        glVertex3f(-0.5, -0.5, 0.5);
    }
    glEnd();
    //后面
    glBegin(GL_QUADS);
    {
        glVertex3f(-0.5, 0.5, -0.5);
        glVertex3f(0.5, 0.5, -0.5);
        glVertex3f(0.5, -0.5, -0.5);
        glVertex3f(-0.5, -0.5, -0.5);
    }
    glEnd();
    glFlush();


再看看用Raylib的函数画立方体:DrawCube((Vector3){0.0,0.0,0.0},1,1,1,SKYBLUE);
其实自己封装一个OpenGL画Cube的函数也可以,只要计算出Cube的八个点再用glVertex3fv传参挨个填过去就可以了。但是Raylib已经封装了大量图形绘制的函数,不用自己再麻烦了。
OpenGL的函数是最原始的“设定一个点,再设定一个点,再连线”地绘图,用它画一个立方体需要36+行代码,没有那种封装好可以直接调用的画图函数,而Raylib则是对OpenGL做了大量封装,内置有绘制各种2D/3D图形的函数,只需要设定图形的大小、位置这样的参数就能完成。
这就好比OpenGL是你摘抄时一笔一划写,而Raylib是你把文章剪下来贴在摘抄本上一样AwA
Raylib(直译为雷利卜)是一个简洁轻量的2D/3D图形库。他涵盖了OpenGL的多个库,包括

  • glut.h
  • glfw.h
  • glew.h
  • glad.h
  • std_image.h
  • ...
且可以做到轻松绘制图形、创建窗口、加载贴图、加载声音、鼠标键盘交互等等,是一个为开发游戏而生的库!
Part 2:配置Raylib环境
Raylib的环境配置不难,只要一个编辑器就可以。他就是我们的国产之光——小熊猫C++



小熊猫C++
相比于传统的Dev-C++,小熊猫C++的功能做了大改动:

操作简便
小熊猫C++无需复杂的安装和配置,打开即可直接编辑程序文件;无需创建项目,点击工具栏上按钮即可编译、运行和调试程序。


轻量高效
小熊猫C++基于QT和C++语言开发,使用内置的轻量级代码分析器进行智能语法分析,运行时无需大量的内存和CPU资源,在低配置机器上也能获得流畅的运行体验。


多平台支持
小熊猫C++支持Windows 7/8/10、Linux等操作系统。在各种操作系统下都能获得相同的高质量编程体验。



生产力提升
通过集成自动缩进、智能代码补全、智能语法高亮和实时语法检查等功能,小熊猫C++提供了流畅的代码编辑体验,可以大幅度提升代码编写的效率。


调试
小熊猫C++提供完善的调试功能,包括控制程序执行、断点、监视变量和表达式、表达式求值、查看本地变量、查看和切换调用栈、查看和修改内存、查看CPU寄存器和反编译信息等。小熊猫C++甚至还可以重定向被调试程序的输入!


多屏幕
小熊猫C++提供了完善的高分辨率和多显示器支持,能够在多个不同DPI设置的显示器间自由切换,同时提供完善的显示效果,便于教学和展示。



试题集和OJ
针对C/C++教学和竞赛需求,小熊猫C++专门提供了试题集和OJ功能:可以方便的组织管理、运行和测试C/C++练习程序;可以导入或者从OJ网站下载试题和配套的测试数据。


GIT版本管理
小熊猫C++内置git支持,可以方便对项目或工作文件夹进行版本管理(需额外安装git程序)






没错就是这个功能!
| |
||
黑客技术更重要的是黑客精神
click here!-->『CodeCraft官网』技术点亮人生

24

主题

52

回帖

870

积分

管理员

老虎玩魔方

积分
870
QQ
发表于 2025-3-29 11:19:29 | 查看全部
很不错,虽然看不懂,哈哈
给楼主点个赞,楼主编写辛苦了
手机毁一生,电脑穷三代,天天玩魔方,必成高富帅。
中国魔方大学QQ群:385088351
WCAID:2010JIN02
哔哩哔哩账号:tigercube
微信视频号:老虎玩魔方
微信公共号:老虎玩魔方
回复

使用道具 举报

18

主题

98

回帖

1614

积分

管理员

Game/IT developer

积分
1614

一周年纪念

 楼主| 发表于 2025-3-29 23:21:01 | 查看全部
玉逸风 发表于 2025-3-29 11:19
很不错,虽然看不懂,哈哈
给楼主点个赞,楼主编写辛苦了

没有没有,其实这文章去年下半年就写了,一直在图形化板块里。昨天没事跑到我建的圈子发现忘记把这篇文章发到圈子里了,就重发了一遍。

这个系列呢其实老早就有了,大概一年前CZLJ刚建站的时候。那时我拼命写这个系列的教程,大概发了五六篇,只不过去年暑假CZLJ崩溃了一次(貌似没出什么大事,服务器出bug了导致CX以为服务器崩溃了,就把czj删掉重建了),文章全没了,弄得我心力憔悴写不动了,到现在第二篇还在我草稿箱里没写完
黑客技术更重要的是黑客精神
click here!-->『CodeCraft官网』技术点亮人生
回复

使用道具 举报

18

主题

98

回帖

1614

积分

管理员

Game/IT developer

积分
1614

一周年纪念

 楼主| 发表于 2025-3-29 23:24:59 | 查看全部
玉逸风 发表于 2025-3-29 11:19
很不错,虽然看不懂,哈哈
给楼主点个赞,楼主编写辛苦了

咱这个论坛其实有点鱼龙混杂,主题太丰富(比如我一个人两个板块版主),又招不到好的 合mian作fei的lao伙dong伴li  加上仅有的我们几个版主&管理员都是学生党平时没啥时间,导致建站两年了快要,社区生态还没建设起来
黑客技术更重要的是黑客精神
click here!-->『CodeCraft官网』技术点亮人生
回复

使用道具 举报

24

主题

52

回帖

870

积分

管理员

老虎玩魔方

积分
870
QQ
发表于 2025-3-30 10:35:51 | 查看全部
Nixx0328 发表于 2025-3-29 23:24
咱这个论坛其实有点鱼龙混杂,主题太丰富(比如我一个人两个板块版主),又招不到好的 合mian作fei的lao ...

其实内容丰富了,更容易有人来,不过缺点也没明显,没有主线,不够专业。
我觉得有工作,专业,还有生活其实更好,论坛其实就是大家分享的一个平台,专业知识,生活感受都挺好的


人气是话,只能去推广,我也在我的QQ群里推广过,就是论坛签名的那个“中国魔方大学”,不过效果不怎么样,可以说没效果。

=) 搜嘎,还是要等专业些再发展事业啊 
发表于 2025-3-30 15:22
手机毁一生,电脑穷三代,天天玩魔方,必成高富帅。
中国魔方大学QQ群:385088351
WCAID:2010JIN02
哔哩哔哩账号:tigercube
微信视频号:老虎玩魔方
微信公共号:老虎玩魔方
回复

使用道具 举报

投诉/建议联系

[email protected]

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加微信客服
Copyright © 2024-2025 CZLJ 版权所有 All Rights Reserved.
关灯 在本圈子发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表