[C++] [Raylib] raylib的使用

这篇博客介绍了raylib库,它是一个简单易用的游戏编程库,灵感来源于Borland BGI和XNA框架。文章展示了如何使用C++初始化窗口、检查关闭事件、开始和结束绘图、清除背景以及绘制文字。通过示例代码解释了基本的窗口创建和文本绘制过程,并提供了编译和运行的步骤。运行日志显示了OpenGL的相关信息和着色器加载情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考

raylib网站
raylib-github
官方例子

介绍(官网+百度翻译)

raylib is a simple and easy-to-use library to enjoy videogames programming.
raylib是一个简单易用的库,用于欣赏视频游戏编程。

raylib is highly inspired by Borland BGI graphics lib and by XNA framework. Do you want to see all functions available in raylib? Check raylib cheatsheet
raylib受到Borland BGI图形库和XNA框架的高度启发。是否要查看raylib中可用的所有函数?检查raylib备忘单

函数原型

RLAPI void InitWindow(int width, int height, const char *title);  // Initialize window and OpenGL context
RLAPI bool WindowShouldClose(void);                               // Check if KEY_ESCAPE pressed or Close icon pressed
RLAPI void BeginDrawing(void);                                    // Setup canvas (framebuffer) to start drawing
RLAPI void EndDrawing(void);                                      // End canvas drawing and swap buffers (double buffering)
RLAPI void ClearBackground(Color color);                          // Set background color (framebuffer clear color)
RLAPI void DrawText(const char *text, int posX, int posY, int fontSize, Color color);       // Draw text (using default font)

代码

//包含
#include <iostream>
#include <raylib.h>

int main()
{
	InitWindow(640,480,"");//创建窗口
	while(!WindowShouldClose())//主循环,如果没有会自己结束
	{
		BeginDrawing();//开始绘图
		{//可有可无,只是突出强调
			ClearBackground(BLACK);//清空背景
			DrawText("Hello World!",0,0,50,RAYWHITE);//绘制文字
		}
		EndDrawing();//结束绘图
	}
	return 0;
} 

编译

简单的运行脚本

@echo off

echo ----------Input File----------

set /p input=
echo %input%.exe

echo ----------Compling----------
g++ %input%.cpp -o %input%.exe -lraylib -lopengl32 -lgdi32 -lwinmm

echo ----------Running----------
%input%.exe

echo ----------End----------
pause

运行时务必加上运行参数

-lraylib -lopengl32 -lgdi32 -lwinmm

否则会报错

运行

运行日志应该大同小异

INFO: Initializing raylib 4.0
INFO: DISPLAY: Device initialized successfully
INFO: > Display size: 1280 x 1024
INFO: > Screen size: 640 x 480
INFO: > Render size: 640 x 480
INFO: > Viewport offsets: 0, 0
INFO: GLAD: OpenGL extensions loaded successfully
INFO: GL: Supported extensions count: 243
INFO: GL: OpenGL device information:
INFO: > Vendor: Intel
INFO: > Renderer: Intel® UHD Graphics 630
INFO: > Version: 3.3.0 - Build 30.0.101.1340
INFO: > GLSL: 3.30 - Build 30.0.101.1340
INFO: GL: DXT compressed textures supported
INFO: GL: ETC2/EAC compressed textures supported
INFO: TEXTURE: [ID 1] Texture loaded successfully (1x1 | R8G8B8A8 | 1 mipmaps)
INFO: TEXTURE: [ID 1] Default texture loaded successfully
INFO: SHADER: [ID 1] Vertex shader compiled successfully
INFO: SHADER: [ID 2] Fragment shader compiled successfully
INFO: SHADER: [ID 3] Program shader loaded successfully
INFO: SHADER: [ID 3] Default shader loaded successfully
INFO: RLGL: Render batch vertex buffers loaded successfully in RAM (CPU)
INFO: RLGL: Render batch vertex buffers loaded successfully in VRAM (GPU)
INFO: RLGL: Default OpenGL state initialized successfully
INFO: TEXTURE: [ID 2] Texture loaded successfully (128x128 | GRAY_ALPHA | 1 mipmaps)
INFO: FONT: Default font loaded successfully (224 glyphs)

可以来琢磨琢磨
给出了屏幕和窗口尺寸,OpenGL拓展,GL版本貌似是3.3的,然后加载默认着色器
最后的窗口应该长这样
在这里插入图片描述
文本原点是左上角,这字体…好方…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值