构建一个多功能的图像类
文章目录
- 构建一个多功能的图像类
- 1、概述
- 2、设计原则
- 2.1 友好API
- 2.2 性能
- 2.3 反馈
- 2.4 破坏性变更和可扩展性
- 3、加载文件
- 4、源矩形
- 5、目标矩形
- 6、渲染和缩放模式
- 7、完整代码
- 8、总结
本文将详细介绍如何设计一个灵活的组件,方便SDL的应用程序中处理图像。
1、概述
在本文中,我们将把本章到目前为止所涵盖的技术结合起来,形成一个统一的 Image 类。我们将专注于创建一个友好的 API,以便外部代码可以轻松控制图像如何渲染到它们的Surface上。我们将涵盖以下内容:
- 创建灵活的图像处理 API
- 实现文件加载和错误检查
- 设置源矩形和目标矩形
- 添加不同的缩放模式以进行渲染
- 优化游戏循环的性能
作为一个起点,我们将基于课程早期涵盖的基础知识构建一个基本的窗口和应用循环:
// main.cpp
#include <SDL_image.h>
#include "Window.h"
#include "Image.h"int main(int argc, char** argv) {SDL_Init(SDL_INIT_VIDEO);IMG_Init(IMG_INIT_PNG);Window GameWindow;Image ExampleImage{"example.png"};SDL_Event Event;bool shouldQuit{false};w