news 2026/6/15 20:11:13

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/15 15:02:00

WTF?XinServer 的项目备份方案是否适合生产环境?

WTF&#xff1f;XinServer 的项目备份方案是否适合生产环境&#xff1f; 兄弟们&#xff0c;最近跟几个创业团队和外包公司的朋友聊天&#xff0c;发现一个挺普遍的现象&#xff1a;大家做项目&#xff0c;尤其是那种需要快速验证的MVP或者急着交付的外包单子&#xff0c;后端这…

作者头像 李华
网站建设 2026/6/15 3:42:18

ChatGLM3-6B-128K实际作品:Agent任务执行效果展示

ChatGLM3-6B-128K实际作品&#xff1a;Agent任务执行效果展示 1. 为什么选ChatGLM3-6B-128K做Agent任务&#xff1f; 很多人一看到“128K上下文”就下意识觉得“这不就是能塞更多文字吗”&#xff0c;但真正用过才知道&#xff0c;长上下文不是单纯堆字数&#xff0c;而是让模…

作者头像 李华
网站建设 2026/6/15 12:53:56

浦语灵笔2.5-7B实战:教育辅助题目解析全流程

浦语灵笔2.5-7B实战&#xff1a;教育辅助题目解析全流程 本文系统介绍浦语灵笔2.5-7B在教育场景中的实际应用&#xff0c;聚焦学生日常遇到的数学、物理、化学等学科题目解析任务。文章不讲抽象理论&#xff0c;而是从一张真实的手写题图出发&#xff0c;完整演示如何上传、提…

作者头像 李华
网站建设 2026/6/15 12:56:03

超越单机极限:Dask并行计算API的深度解析与实践

超越单机极限&#xff1a;Dask并行计算API的深度解析与实践 引言&#xff1a;大数据并行计算的新范式 在数据科学和机器学习领域&#xff0c;我们正面临着前所未有的数据规模挑战。传统的单机计算框架&#xff08;如Pandas、NumPy&#xff09;在处理GB甚至TB级数据时已显力不…

作者头像 李华
网站建设 2026/6/15 19:47:00

造相Z-Image模型.NET集成:Windows应用开发实战

造相Z-Image模型.NET集成&#xff1a;Windows应用开发实战 1. 为什么要在Windows桌面应用中集成Z-Image 在AI图像生成技术快速发展的今天&#xff0c;开发者们不再满足于简单的在线体验或命令行工具。越来越多的企业和个人需要将AI能力深度融入到自己的业务流程中——比如电商…

作者头像 李华
网站建设 2026/6/15 15:18:03

程序员必知必会的微服务架构设计能力!你掌握了多少?

程序员必知必会的微服务架构设计能力&#xff01;你掌握了多少&#xff1f; 微服务架构设计能力是当代开发者必备的核心技能之一。以下从关键设计维度展开说明&#xff0c;帮助您系统化掌握&#xff1a; 一、服务拆分原则 领域驱动设计&#xff08;DDD&#xff09; 通过限界上…

作者头像 李华