摘要: 一、前言 与按键一样,SDL 具有事件结构来处理鼠标事件,如鼠标运动、鼠标 按钮按下,鼠标按钮释放。 二、鼠标事件 在上一卷的基础上添加一些代码即可 int main(int argc, char* argv[]) // 必须要填写此参数,不然会出现链接错误 { // 初始化 SDL if (Ini 阅读全文
posted @ 2022-12-08 22:33 AnnihilateSword 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 一、前言 使用 SDL 呈现文本的一种方法是使用扩展库 SDL_ttf。 SDL_ttf 允许您从 TrueType 字体创建图像,我们将在此处使用这些字体来创建纹理 从字体文本。 ✨扩展库连接 ✨下载 配置方式跟之前讲解 SDL 和 SDL_image 库的配置基本类似 ✨官方文档 二、使用 SD 阅读全文
posted @ 2022-12-08 22:02 AnnihilateSword 阅读(607) 评论(0) 推荐(0) 编辑
摘要: 一、前言 SDL 2 的硬件加速纹理渲染还使我们能够进行快速的图像翻转和旋转。 本卷,我们将使用它来制作箭头 纹理旋转和翻转。 使用资源 二、旋转和翻转纹理 在这里,我们将向纹理类添加更多功能。渲染函数现在添加了旋转角度,指向某点旋转纹理,然后最后是 SDL 翻转枚举。 与剪切矩形一样,我们为参数提 阅读全文
posted @ 2022-12-08 20:50 AnnihilateSword 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 一、前言 简而言之,动画只是显示一个又一个图像以创造运动的错觉。 在这里,我们将展示使用不同的精灵表片段来制作简单的动画。 // 创建窗口渲染器,设置硬件加速和垂直同步 gRenderer = SDL_CreateRenderer(gWindow, -1, SDL_RENDERER_ACCELERA 阅读全文
posted @ 2022-12-08 20:22 AnnihilateSword 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 一、前言 这一节比较简单,介绍一下如何设置纹理颜色和透明度 主要使用两个函数,可以去官网文档看看,应该很好使用,这里也给出例子 SDL_SetTextureColorMod ✨参考链接 SDL_SetTextureAlphaMod ✨参考链接 二、设置纹理颜色和透明度 本卷使用纹理资源 本卷在上一卷 阅读全文
posted @ 2022-12-08 19:43 AnnihilateSword 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 一、前言 有时您只想渲染纹理的一部分。很多时候,游戏喜欢将多个图像保留在同一个精灵表上,而不是拥有一堆 纹理。使用剪辑渲染,我们可以定义要渲染的纹理的一部分,而不是渲染整个东西。 二、纹理类 // 纹理类 class Texture { private: int m_Width; int m_Hei 阅读全文
posted @ 2022-12-08 19:14 AnnihilateSword 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 一、前言 在屏幕上渲染多个图像时,通常需要具有透明背景的图像。幸运的是,SDL 提供了一种简单的方法来执行此操作: 颜色键控。其实现在这种用的少,纹理也能自动处理 PNG 的透明部分,不过作为基础知识,可以了解一下 二、使用颜色键控 (Color Keying) 本卷使用纹理资源 /** * @br 阅读全文
posted @ 2022-12-08 17:57 AnnihilateSword 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 一、前言 SDL2.0 还允许使用视口控制在屏幕上的渲染位置,我们可以使用视口来创建子屏幕。 有时,您只想为小地图之类的内容渲染屏幕的一部分。使用视口,您可以控制在屏幕上的渲染位置。 二、使用视口 // rendering // 设置渲染器绘制颜色(黑色) SDL_SetRenderDrawColo 阅读全文
posted @ 2022-12-08 17:16 AnnihilateSword 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 一、前言 除了新的纹理 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) 编辑