12下一页
返回列表 发布新帖
查看: 1629|回复: 10

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

18

主题

98

回帖

1609

积分

管理员

Game/IT developer

积分
1609

一周年纪念

发表于 2024-7-18 13:01:06 | 查看全部 |阅读模式
(emm.....没想到我研究CTF几天不在CZLJ,一下子涌进来这么多用户,看来不发点干(hen)货(huo)不行了——)

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官网』技术点亮人生

18

主题

98

回帖

1609

积分

管理员

Game/IT developer

积分
1609

一周年纪念

 楼主| 发表于 2024-7-18 13:03:18 | 查看全部
哈哈哈哈哈哈哈哈哈哈上传附件给了190金钱+190经验+190贡献哈哈哈哈哈哈哈
黑客技术更重要的是黑客精神
click here!-->『CodeCraft官网』技术点亮人生
回复

使用道具 举报

18

主题

98

回帖

1609

积分

管理员

Game/IT developer

积分
1609

一周年纪念

 楼主| 发表于 2024-7-18 13:06:58 | 查看全部
好肝啊啊啊啊不知道下一期什么时候鉼出来
黑客技术更重要的是黑客精神
click here!-->『CodeCraft官网』技术点亮人生
回复

使用道具 举报

18

主题

98

回帖

1609

积分

管理员

Game/IT developer

积分
1609

一周年纪念

 楼主| 发表于 2024-7-20 12:02:56 | 查看全部
@_CX_ 看我新帖
黑客技术更重要的是黑客精神
click here!-->『CodeCraft官网』技术点亮人生
回复

使用道具 举报

18

主题

98

回帖

1609

积分

管理员

Game/IT developer

积分
1609

一周年纪念

 楼主| 发表于 2024-11-27 22:32:46 | 查看全部
@ZSJ20110121 see it

看中间那个俄罗斯方块,源码可以拿去参考和改价进
黑客技术更重要的是黑客精神
click here!-->『CodeCraft官网』技术点亮人生
回复

使用道具 举报

18

主题

98

回帖

1609

积分

管理员

Game/IT developer

积分
1609

一周年纪念

 楼主| 发表于 2024-12-1 15:42:46 | 查看全部
@ZSJ20110121
黑客技术更重要的是黑客精神
click here!-->『CodeCraft官网』技术点亮人生
回复

使用道具 举报

18

主题

98

回帖

1609

积分

管理员

Game/IT developer

积分
1609

一周年纪念

 楼主| 发表于 2024-12-1 15:43:26 | 查看全部
@ZSJ20110121
黑客技术更重要的是黑客精神
click here!-->『CodeCraft官网』技术点亮人生
回复

使用道具 举报

18

主题

98

回帖

1609

积分

管理员

Game/IT developer

积分
1609

一周年纪念

 楼主| 发表于 2025-4-4 10:41:14 | 查看全部
黑客技术更重要的是黑客精神
click here!-->『CodeCraft官网』技术点亮人生
回复

使用道具 举报

18

主题

98

回帖

1609

积分

管理员

Game/IT developer

积分
1609

一周年纪念

 楼主| 发表于 2025-4-4 10:45:48 | 查看全部
@_CX_
@ZSJ
@ZSJ2011
我才发现raylib官网里说raylib支持树莓派RaspberryPi呢
黑客技术更重要的是黑客精神
click here!-->『CodeCraft官网』技术点亮人生
回复

使用道具 举报

4

主题

13

回帖

640

积分

橙焕

积分
640
发表于 2025-4-4 18:12:57 | 查看全部
越来越觉得Raylib比easyX好些了
Make Programming Great Again
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

[email protected]

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