news 2026/6/18 17:30:29

2026年2月4日C++精灵库更新记录:

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026年2月4日C++精灵库更新记录:

C++精灵库是专为少儿入门学习C++的一个教学工具库。它借鉴了logo计算机语言编程教育启蒙的灵魂,是logo小海龟编程在C++上最优秀的实现。它移植了大量Python turtle的命令。增强了不少命令,更容易创造出创意作品,从而更易激发儿童学习C++编程的兴趣,也是青少年及成人学习C++编程良好的启蒙助手。以下是V1.02版和V1.03版的更新内容:

2026年2月4日C++精灵库更新记录:

以下角色名默认为sprite,屏幕默认名为screen。

V1.02版:

1. 增加精细化管理write所写文字的三个命令:
sprite.get_txtitems(), 获取所有的文本编号
sprite.cleartxt(id), 删除指定编号的文本
sprite.cleartxts(n), 删除前n或后n个文本,

2. scale命令重载无参数时返回scale
float k = sprite.scale();
返回当前缩放比例xscale值。

3. oval/ellipse新增fill参数控制是否以填充颜色填充椭圆
sprite.oval(50,100,360,true);

V1.03版:

1. 新增delay单独函数,本质就是调用屏幕的等待函数,但有默认参数为0.016666。
示例:delay(2)

2. 新增角色的done命令可以加0参数,表示角色先隐藏后再进入事件循环。
示例:sprite.done(0)

3. 修正屏幕的savepng命令在非全屏截图时不会截文字与图章的bug。
示例:screen.savepng(filename,{-50, 50, 100, 100},true);
以上savepng命令的参数分别是图像文件名,矩形区域,是否只截绘图层。

4. 新增颤抖命令 tremble
作用: 让角色颤抖
函数原型:
Sprite& tremble(int dx,int dy,int times,float septime);
参数:dx:最大水平位移 ,dy:最大垂直位移,times:次数,septime: 以秒为单位的颤抖间隔时间
返回对角色的引用。
示例一: sprite.tremble();
示例二:sprite.tremble(20,20,30,0.2

5.新增角色的淡入淡出方法
函数原型:
Sprite& fadeout(int step=16,float wt=0.01);
Sprite& fadein(int step=16,float wt=0.01);
示例:sprite.fadeout().fadein();

6. 修复stamp一点小bug.
即盖完图章后,如果角色透明度变了但是图章的透明度应该不变的bug。

下面是C++精灵库总的头文件 sprites.h的文件源代码:

/* sprites.h 本文件是C++精灵库(C++ Sprites库)总的头文件。它主要包含的是cppsprites目录下面的一些头文件。 作者:李兴球,电子信箱:52703141@qq.com, 版本V1.0.3,copyright@2026年2月4号。 C++精灵库继承了logo计算机语言以来的小海龟编程教育思想。在具体实现上传承、扬弃、发展了Python turtle库的相关命令。 所以在C++精灵库中角色与屏幕对象的很多命令和Python turtle保持一致。 相对于Python turtle库,C++精灵库增强了某些命令,比如heading命令,原Python turtle加中的只能返回角色的方向,而C++精灵库的heading命令通过重载这个命令让角色可以直接朝向某个坐标或角色。 比如 角色的pencolor命令,原Python turtle可以填写RGB与16进制字符串参数。C++精灵库则通过重载还可以直接支持填写整数参数。这个时候,这个整数表示颜色的色相。 新增的命令还有: penshade——设定画笔颜色深浅度(阴影度); fill——洪水填充命令,适合于在封闭区域进行填充; penhue——设定画笔的色相命令; pensat——设定画笔的饱和度命令; penvalue——设定画笔的明度命令; coloradd——颜色增加命令,增加的是颜色的色相; oval——画椭圆命令 ; penhsv——设定画笔hsv命令,关于hsv颜色模型,请自行查阅资料; bounce_on_edge——碰到边缘反弹命令; nextshape——下一个造型命令等等,这里不一一列举; 授权任何人出于任何目的(包括商业用途)都可以使用本软件,并可自由修改和重新分发,比如,你可以自己开发一个C++编辑器把C++精灵库集成在内,须遵守以下限制条件: 1. 不得歪曲本软件的来源;您不得声称自己编写了原始软件。如果您在作品/产品/课程/书籍等中使用本软件,需要申明使用了C++精灵库及其作者姓名。 2. 如果你希望修改C++精灵库的源代码发展自己的专属库,修改后的源代码版本必须明确标注为已修改版本,且不得被错误地表述为原始软件。 3. 本声明不得从任何源代码分发版本中删除或修改。 C++精灵库采用SDL2库为基座。它的设计目标与适应场景是青少儿C++入门。它并非专业级别的游戏开发与模拟仿真中间件。 如果你想支持作者不断改进C++精灵库,可以进行捐助,捐助时先给作者发送电子邮件。 V1.03版更新记录: 1. 新增delay单独函数,本质就是调用屏幕的等待函数,但有默认参数为0.016666。 示例:delay(2) 2. 角色的done命令可以加0参数,表示角色先隐藏后再进入事件循环。 示例:sprite.done(0) 3. 修正屏幕的savepng命令在非全屏截图时不会截文字与图章的bug。 示例:screen.savepng(filename,{-50, 50, 100, 100},true); 以上savepng命令的参数分别是图像文件名,矩形区域,是否只截绘图层。 如果你是高级用户,想单独安装C++精灵库,以下是在基于64位GCC的编辑器里安装C++精灵库的步骤: 1. 首先给这个C++编辑器安装SDL2库,要求SDL2库的头文件放在编译器的include目录的SDL2目录下面。 2. 然后把sprites.h和cppsprites目录拷贝到 "编辑器安装目录\MinGW64\include"目录下面。 3. 把库文件libsprites.a拷贝到 "编辑器安装目录\MinGW64\lib"目录下面。 4. 在编译时加入以下命令:-std=c++17 -Wno-narrowing -fexec-charset=GBK -finput-charset=GBK 5. 在连接器命令行加入以下命令:-static-libgcc -lmingw32 -lgdi32 -luser32 -lole32 -luuid -lws2_32 -lsprites -lSDL2main -lSDL2 -lSDL2_image -lSDL2_ttf -lSDL2_mixer 如果C++精灵库基于C++17标准,如果你对编译器不熟悉,建议不要手动安装C++精灵库,而是用作者已经集成好了C++精灵库的pxC++编辑器或者作者发布的DevC++5.11升级包,从而对DevC++5.11一键升级,从而可方便地使用C++精灵库。 */ #ifndef SPRITES_H #define SPRITES_H #define SDL_MAIN_HANDLED //禁用 SDL2 对 main() 的重写 #define Surface SDL_Surface #define Texture SDL_Texture #include "cppsprites/screen.h" #include "cppsprites/sprite.h" #include "cppsprites/color_map.h" #include "cppsprites/functools.h" #include "cppsprites/polygon_region_filler.h" #include "cppsprites/polygon_offset.h" #include "cppsprites/coloradd.h" #include "cppsprites/writetxt.h" #include <sstream> #include "cppsprites/dynamicproperty.h" #define Create(name) Sprite name("res/" #name ".png", #name) #endif // SPRITES_H
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/17 13:58:41

在Chrome浏览器中使用Gemini,附一键开启方法

&#x1f517;官方介绍&#xff1a;https://support.google.com/gemini/answer/16283624 本文下面使用&#xff1a;ChromeAI 代替&#xff1a;chrome浏览器中的Gemini&#xff0c;注意Chrome AI并非官方正式术语。 一、基本要求 Chrome 中的 Gemini 是 Chrome 的一项功能&am…

作者头像 李华
网站建设 2026/6/16 20:02:34

一个完整的、工业级可落地的 OpenCVSharp 视觉尺寸测量 Demo

以下是一个完整的、工业级可落地的 OpenCVSharp 视觉尺寸测量 Demo&#xff08;C# WinForms 版&#xff09;&#xff0c;专为零基础到中级开发者设计。 这个 Demo 实现了以下核心功能&#xff1a; 支持本地图片测量支持工业相机实时流测量&#xff08;USB 相机 / GigE 相机&…

作者头像 李华
网站建设 2026/6/13 9:18:32

大模型应用:大模型多线程推理:并发请求的处理与资源隔离实践.77

一、引言我们通常在做大模型应用处理时&#xff0c;常规单一请求的输入问题→等待模型返回→得到答案&#xff0c;一切都很顺畅&#xff0c;但如果有 10 个人、100 个人同时请求&#xff0c;就会出现我们经常遇到的并发问题&#xff0c;如果按先来后到的顺序串行处理&#xff0…

作者头像 李华
网站建设 2026/6/17 19:27:19

Qwen3-ForcedAligner-0.6B体验:一键生成语音时间戳,误差仅0.02秒

Qwen3-ForcedAligner-0.6B体验&#xff1a;一键生成语音时间戳&#xff0c;误差仅0.02秒 1. 这不是ASR&#xff0c;但比ASR更精准——音文对齐到底解决什么问题&#xff1f; 你有没有遇到过这些场景&#xff1a; 剪辑一段3分钟的采访音频&#xff0c;想把“这个数据非常关键…

作者头像 李华
网站建设 2026/6/13 21:30:10

VibeVoice Pro开源模型教程:HuggingFace Model Hub模型结构解析与微调入门

VibeVoice Pro开源模型教程&#xff1a;HuggingFace Model Hub模型结构解析与微调入门 1. 为什么你需要关注这个“会呼吸”的语音模型 你有没有遇到过这样的场景&#xff1a;在做实时客服对话系统时&#xff0c;用户刚说完一句话&#xff0c;系统却要等2秒才开始说话&#xf…

作者头像 李华
网站建设 2026/6/13 20:46:15

SiameseUIE入门必看:vocab.txt/config.json/pytorch_model.bin三文件作用

SiameseUIE入门必看&#xff1a;vocab.txt/config.json/pytorch_model.bin三文件作用 1. 为什么这三份文件缺一不可&#xff1f;——从一次“删错文件”的翻车说起 你刚拿到一个SiameseUIE模型镜像&#xff0c;兴奋地想清理下空间&#xff0c;随手把config.json删了&#xff…

作者头像 李华