C++ Sprites 库 Screen 类方法教程
1. Screen (构造函数)
- 作用: 创建一个屏幕窗口对象。
- 用法:
Screen sc:创建一个名为sc,默认 640×480 像素、标题为 “C++ Sprites Library” 的窗口。Screen *sc = new Screen("我的游戏", 800, 600):创建一个 800×600 像素、标题为 “我的游戏” 的窗口,其指针赋值给sc。
2. title
- 作用: 设置或获取窗口的标题。
- 用法:
- 设置标题:
screen.title("新标题"); - 获取标题:
std::string currentTitle = screen.title();
- 设置标题:
3. setup
- 作用: 设置窗口的宽度和高度。
- 用法:
screen.setup(1024, 768);// 将窗口大小调整为 1024×768
4. clear
- 作用: 清空屏幕,将其填充为当前背景色。
- 用法:
screen.clear();// 屏幕变为空白(背景色)
5. update
- 作用: 手动刷新屏幕,将所有绘制操作显示出来。
- 用法: 在手动更新模式下(见
update_mode),完成所有绘制后调用screen.update();来显示画面。
6. update_mode / tracer (别名)
- 作用: 切换屏幕的自动/手动刷新模式。
- 用法:
screen.update_mode(true);或screen.tracer(true);// 启用自动刷新(默认)。每次绘图后屏幕会自动更新。screen.update_mode(false);或screen.tracer(false);// 启用手动刷新。需要你显式调用update()方法才能看到画面变化,这在动画中能提升性能。
7. bgcolor / fill (别名)
- 作用: 设置屏幕的背景颜色。
- 用法 (多种方式):
- 字符串:
screen.bgcolor("red");或screen.fill("lightblue"); - RGB值:
screen.bgcolor(255, 0, 0);// 红色 - HSL值:
screen.bgcolor(120);// 120度是绿色 (0-360) - SDL_Color:
screen.bgcolor({0, 255, 0, 255});// 绿色
- 字符串:
8. delay
- 作用: 设置或获取全局延迟(以毫秒为单位)。
- 用法:
- 设置延迟:
screen.delay(100);// 设置全局延迟为100毫秒 - 获取延迟:
unsigned int currentDelay = screen.delay();
- 设置延迟:
9. mainloop / done (别名)
- 作用: 启动主事件循环,保持窗口打开并响应事件(如关闭按钮)。
- 用法: 在程序最后调用
screen.mainloop();或screen.done();。程序会在此处暂停,直到用户关闭窗口。
10. width / height
- 作用: 获取屏幕的宽度和高度。
- 用法:
int w = screen.width();int h = screen.height();
11. exitonclick
- 作用: 让程序在用户点击窗口关闭按钮时退出主循环。
- 用法: 通常在
mainloop之前调用。如果返回false,表示用户已点击关闭按钮。
12. wait
- 作用: 让程序暂停指定的秒数。
- 用法:
screen.wait(2.5f);// 暂停 2.5 秒
13. get_ticks
- 作用: 获取自程序启动以来经过的毫秒数。
- 用法:
Uint32 startTime = screen.get_ticks();// 常用于计时和控制帧率。
14. loadbackground / addbackground / addbg
- 作用: 加载一张图片作为背景,并将其添加到背景列表中。
- 用法:
screen.addbackground("path/to/background.jpg");
15. removebackground / removebg
- 作用: 从背景列表中移除指定路径的背景图片。
- 用法:
screen.removebackground("path/to/background.jpg");
16. bgpic
- 作用: 设置当前显示的背景图片。
- 用法:
screen.bgpic("path/to/my_bg.png");
17. next_bg / nextbg / next_background
- 作用: 切换到背景列表中的下一张背景图。
- 用法:
screen.next_bg();
18. pre_bg / prebg / pre_background
- 作用: 切换到背景列表中的上一张背景图。
- 用法:
screen.pre_bg();
19. set_background
- 作用: 通过索引或文件路径直接设置当前背景。
- 用法:
- 按索引:
screen.set_background(2);// 显示列表中的第3张图(索引从0开始) - 按路径:
screen.set_background("my_image.png");
- 按索引:
20. xy_grid / xygrid
- 作用: 在屏幕上绘制或设置坐标网格。
- 用法:
- 绘制网格:
screen.xy_grid(50);// 绘制间距为50像素的网格线 - 获取网格间距:
int step = screen.xy_grid();
- 绘制网格:
21. setpixel
- 作用: 在屏幕的指定坐标 (x, y) 处绘制一个像素点。
- 用法:
screen.setpixel(100, 200, {255, 0, 0, 255});// 在(100,200)画一个红色像素screen.setpixel(100, 200, "blue");// 使用颜色名称
22. getpixel
- 作用: 获取屏幕指定坐标 (x, y) 处像素的颜色(返回十六进制字符串)。
- 用法:
std::string color = screen.getpixel(100, 200);// 例如返回 “#FF0000”
23. inputbox
- 作用: 弹出一个输入框,让用户输入文本。
- 用法:
std::string name = screen.inputbox("姓名", "请输入您的名字:");
24. messagebox
- 作用: 弹出一个消息提示框。
- 用法:
- 信息框:
screen.messagebox("提示", "操作成功!"); - 警告框:
screen.messagebox("警告", "文件未找到!", SDL_MESSAGEBOX_WARNING); - 错误框:
screen.messagebox("错误", "发生致命错误!", SDL_MESSAGEBOX_ERROR);
- 信息框:
25. savepng
- 作用: 将当前屏幕内容保存为 PNG 图片文件。
- 用法:
- 保存整个屏幕:
screen.savepng("screenshot.png"); - 保存指定区域:
screen.savepng("region.png", {100, 100, 200, 200});// 保存从(100,100)开始的200×200区域,如果再加是一个bool参数,为真的话表示只截绘画内容。
- 保存整个屏幕:
