学习如何使用C++精灵库中的Sprite类创建和控制角色,实现动画和交互
在C++精灵库中有两大类型,一个是Screen(屏幕)类,另一个就是Sprite(角色)类。Sprite类用于实例化一个角色。角色藏有一只看不见的画笔。用户可以通过角色的方法对画笔进行设定。如画笔颜色、线宽、填充颜色。角色可以前进、倒退、左转、右转、变大变小等等。用户通过符合逻辑的代码组合,不仅能画出漂亮的图案,还能制作动画与交互作品。
注意:在C++精灵库中,画笔的颜色最终由r,g,b,a值决定。所有通过设定颜色的色相、饱和度、明度最终都会转换为RGBA值。并且在规定色相的取值范围是0到360,而饱和度和明度的取值范围是0.0到100.0。至于画笔的shade值,它是一个综合的值,用于描述色彩的深浅度。shade值为0时表示颜色最深,值为100时表示颜色最浅(白色)。
// 创建一个叫rocket角色,造型默认是一枚小火箭。
Sprite rocket;
// 创建一个叫t的角色,造型是海龟,自动关联到"res/turtle.png"图片为造型。
Sprite t("turtle");
// 创建一个叫t的角色,没有造型。
Sprite t("blank");
// 创建一个叫t角色,造型是res目录下面的turtle.png图片。
Sprite t{"res/turtle.png"};
// 创建一个叫turtle角色,它有两个造型。
Sprite turtle({"res/turtle_red.png","res/turtle_blue.png"});
// turtle造型、可见性、标签、x坐标、y坐标、朝向。
Sprite t{"turtle",false,"object",100,100,45};
// 新建turtle造型的角色,返回地址赋值给haigui。
Sprite* haigui = new Sprite("turtle");
// 由于haigui是指针,所以要用->号来调用fd方法。
haigui->fd(200);
sprite.fd(50);
sprite.bk(30);
提示:以上所有移动方法都返回对角色的引用,支持链式调用。
sprite.penup();
sprite.pendown();
重要:本教程内容基于C++精灵库V1.0.0版本,如有更新请以最新版本为准。