C++ Sprites库屏幕命令一览表V1.0.0Beta(2025年12月15号版)

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,表示用户已点击关闭按钮。
    <span class="linenumber react-syntax-highlighter-line-number" style="display: inline-block; min-width: 2em; padding-right: 8px; text-align: right; user-select: none; color: #008000; font-size: 13px; font-style: italic;">1</span><span class="token" style="color: #0000ff;">while</span> <span class="token" style="color: #393a34;">(</span>screen<span class="token" style="color: #393a34;">.</span><span class="token" style="color: #393a34;">exitonclick</span><span class="token" style="color: #393a34;">(</span><span class="token" style="color: #393a34;">)</span><span class="token" style="color: #393a34;">)</span> <span class="token" style="color: #393a34;">{</span>
    <span class="linenumber react-syntax-highlighter-line-number" style="display: inline-block; min-width: 2em; padding-right: 8px; text-align: right; user-select: none; color: #008000; font-size: 13px; font-style: italic;">2</span>    <span class="token" style="color: #008000; font-style: italic;">// 你的游戏循环代码</span>
    <span class="linenumber react-syntax-highlighter-line-number" style="display: inline-block; min-width: 2em; padding-right: 8px; text-align: right; user-select: none; color: #008000; font-size: 13px; font-style: italic;">3</span>    screen<span class="token" style="color: #393a34;">.</span><span class="token" style="color: #393a34;">update</span><span class="token" style="color: #393a34;">(</span><span class="token" style="color: #393a34;">)</span><span class="token" style="color: #393a34;">;</span>
    <span class="linenumber react-syntax-highlighter-line-number" style="display: inline-block; min-width: 2em; padding-right: 8px; text-align: right; user-select: none; color: #008000; font-size: 13px; font-style: italic;">4</span><span class="token" style="color: #393a34;">}</span>

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参数,为真的话表示只截绘画内容。

关于李兴球

李兴球的博客是Python创意编程原创博客
此条目发表在C++, 杂谈分类目录。将固定链接加入收藏夹。

发表回复