摘要: 一、前言 除了新的纹理 API,SDL 还在其渲染 API 中提供了新的基元渲染调用。 因此,如果您需要渲染一些基本形状,并且不想为它们创建其他图形,SDL 可以为您节省精力。 // 加载媒体资源,这里不加载媒体资源 //if (!LoadMedia()) // std::cout << "[Err 阅读全文
posted @ 2022-12-08 16:48 AnnihilateSword 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 一、前言 最初我们使用的是 SDL_Surface 进行绘图的,这个其实是 SDL1 主要使用的,之后因为各种原因到 SDL2 的时候,就用的不太多了,但还是要了解,有些需求还是需要使用这个进行绘图的 SDL2 的一个主要新增功能是纹理渲染 API。提供了快速、灵活的基于硬件的渲染。 当我们处理需要 阅读全文
posted @ 2022-12-08 16:15 AnnihilateSword 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 一、前言 在这里,我们先介绍优化加载表面,然后将使用 SDL_image 扩展库来加载 png 图像。 二、优化加载表面 1. 问题 加载位图时,它通常以 24 位格式加载,因为大多数位图都是 24 位。默认情况下,大多数(如果不是全部)现代显示器不是 24 位。如果我们对图像进行 位块传输 这是 阅读全文
posted @ 2022-12-08 11:36 AnnihilateSword 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 一、SDL事件系统介绍 我们之前在代码中有声明 SDL_Event 类型的变量用来接收事件 事件可以是 按键事件、鼠标事件、摇杆事件、窗口事件等 我们最开始使用的事件是 SDL_QUIT,该事件在用户点击窗口关闭按钮时触发 1. 事件队列 在主循环的顶部,我们有事件循环。这样做的目的是继续处理事件队 阅读全文
posted @ 2022-12-07 21:55 AnnihilateSword 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 一、前言 本节介绍如何加载 BMP 图片,并且实现缩放效果 然后代码在上一小节的基础上稍微封装了一下,但是考虑到并不是真正的项目,所以并不会弄的太复杂,我们还是以解释每个功能以及效果的实现为主 二、加载 BMP 图片 使用函数:SDL_Surface* SDL_LoadBMP(const char* 阅读全文
posted @ 2022-12-07 20:30 AnnihilateSword 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 一、前言 之前我们已经设置了 SDL,是时候制作一个在屏幕上呈现四边形的 SDL 图形应用程序了。 二、第一个 SDL 窗口 我们在上一卷的基础上编写,我会对重要的地方做出适当的解释。 // 使用 SDL 和 iostream #include <SDL.h> #include <iostream> 阅读全文
posted @ 2022-12-07 16:36 AnnihilateSword 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 一、前言 这段时间正好使用 SDL,所以打算开一个新的系列,作为经验分享 —— SDL 游戏编程入门。 这也是 AnnihilateSword 在此站的第一个系列,文中可能有许多不足,还请多多包涵,如能斧正,那再好不过。 1. 使用工具: 语言:C++ 编辑器:Visual Studio 2019 阅读全文
posted @ 2022-12-07 15:30 AnnihilateSword 阅读(229) 评论(0) 推荐(0) 编辑