这是用C++精灵库编写的程序,请看视频:
BFS最短路演示动画C++广度优先搜索可视化程序C++精灵库
DFS寻找所有路径可视化程序_C++精灵库深搜算法可视化
看视频:
C++精灵库V1.0.2发布与手动安装指南
以下是C++精灵库的总的头文件的内容:
/*
sprites.h
本文件是C++精灵库(C++ Sprites库)总的头文件。它主要包含的是cppsprites目录下面的一些头文件。
作者:李兴球,电子信箱:52703141@qq.com, 版本V1.0.2,copyright@2026年1月28号。
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++精灵库集成在内,须遵守以下限制条件:
-
不得歪曲本软件的来源;您不得声称自己编写了原始软件。如果您在作品/产品/课程/书籍等中使用本软件,需要申明使用了C++精灵库及其作者姓名。
-
如果你希望修改C++精灵库的源代码发展自己的专属库,修改后的源代码版本必须明确标注为已修改版本,且不得被错误地表述为原始软件。
-
本声明不得从任何源代码分发版本中删除或修改。
C++精灵库采用SDL2库为基座。它的设计目标与适应场景是青少儿C++入门。它并非专业级别的游戏开发与模拟仿真中间件。 如果你想支持作者不断改进C++精灵库,可以进行捐助,捐助时先给作者发送电子邮件。
V1.0.2版本主要增加了对 write命令所写的文本进行更精细化管理,以下是更新说明:
新增角色方法:
scale() : 返回当前缩放比例xscale
get_txtitems(): 获取所有文本ID
cleartxt(): 按ID删除文本
cleartxts(): 批量删除文本(前n/后n/全部)
参数增强
ellipse()/oval() : 增加fill参数控制是否填充
如果你是高级用户,想单独安装C++精灵库,以下是在基于GCC的编辑器里安装C++精灵库的步骤:
-
首先给这个C++编辑器安装SDL2库,要求SDL2库的头文件放在编译器的include目录的SDL2目录下面。
-
然后把sprites.h和cppsprites目录拷贝到 "编辑器安装目录\MinGW64\include"目录下面。
-
把库文件libsprites.a拷贝到 "编辑器安装目录\MinGW64\lib"目录下面。
-
在编译时加入以下命令:-std=c++17 -Wno-narrowing -fexec-charset=GBK -finput-charset=GBK
-
在连接器命令行加入以下命令:-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
这是C++精灵库V1.0.2版本的安装指南: