精灵类是Sprite,它的类图如下图所示:
Sprite类直接继承了Node类,具有Node基本特征。此外,我们还可以看到Sprite类的派生类有:PhysicsSprite和Skin。PhysicsSprite是物理引擎精灵类,Skin是皮肤精灵类用于骨骼动画。
使用纹理Texture2D对象创建Sprite对象是使用createWithTexture函数实现的。我们会通过一个实例介绍纹理对象创建Sprite对象使用,这个实例如下面第一张图所示,其中地面上的草是放在背景中的,场景中的两棵树是从“树”纹理图片中截取出来的,最后一张图所示的是树的纹理坐标,注意它的坐标原点在左上角。
创建Sprite对象实例
场景背景图片
“树”纹理图片
树”纹理图片
HelloWorldScene.cpp实现的init函数代码如下:
- bool HelloWorld::init()
- {
- if ( !Layer::init() )
- {
- return false;
- }
- Size visibleSize = Director::getInstance()->getVisibleSize();
- Point origin = Director::getInstance()->getVisibleOrigin();
- autobackground = Sprite::create("background.png"); ①
- background->setAnchorPoint(Point::ZERO); ②
- this->addChild(background,0);
- auto tree1 = Sprite::create("tree1.png",Rect(604, 38, 302,295)); ③
- tree1->setPosition(Point(200,230));
- this->addChild(tree1,0);
- Texture2D* cache = TextureCache::getInstance()->addImage("tree1.png"); ④
- auto tree2 = Sprite::create(); ⑤
- tree2->setTexture(cache); ⑥
- tree2->setTextureRect(Rect(73, 72,182,270)); ⑦
- tree2->setPosition(Point(500,200));
- this->addChild(tree2,0);
- return true;
- }
在上面代码第①行Sprite::create("background.png")通过background.png图片创建精灵,第②行代码是设置背景的锚点。
第③行代码Sprite::create("tree1.png",Rect(604, 38, 302, 295))通过tree1.png图片和矩形裁剪区域创建精灵,矩形裁剪区域为(604, 38, 302,295)。
Rect类可以创建矩形裁剪区,Rect构造函数如下:
Rect (float x, float y, float width,float height)
其中x,y是UI坐标,坐标原点在左上角,width是裁剪矩形的宽度,height是裁剪矩形的高度。
第④行代码通过纹理缓存TextureCache创建纹理Texture2D对象,TextureCache::getInstance()是采用单例设计模式,通过getInstance()函数可以获得TextureCache实例,TextureCache 的addImage("tree1.png")函数可以创建纹理Texture2D对象,其中的tree1.png是纹理图片名。
第⑤行代码创建一个空的Sprite对象,所以还要通过的后面的很多函数设置它的属性,其中第⑥行代码tree2->setTexture(cache)是设置纹理。第⑦行代码tree2->setTextureRect(Rect(73, 72,182,270))是设置纹理的裁剪区域。
本书交流讨论网站:http://www.cocoagame.net
《Cocos2d-x实战 C++卷》现已上线,各大商店均已开售:
京东:http://item.jd.com/11584534.html
当当:http://product.dangdang.com/23606265.html
互动出版网:http://product.china-pub.com/3770734
《Cocos2d-x实战 C++卷》源码及样章下载地址:
源码下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1
样章下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1
相关推荐
SKTetrisGame 使用Apple的SpriteKit为iOS创建的俄罗斯方块游戏
phaser3-juice-plugin:使用Phaser 3为Sprite创建可自定义的多汁效果的插件
实例扩展:使用鼠标驾驶汽车 实例:显示列表适配器 实例扩展:显示O'Reilly出版的新书目 小结 第6章 组合模式 什么是组合模式? 组合模式最小化示例 组合模式中关键的OOP概念 实例:歌曲播放列表 实例:...
由于正在使用精灵,因此文本将始终面向相机,并且其方向相对于相机固定。 快速开始 import SpriteText from 'three-spritetext'; 或者 var SpriteText = require('three-spritetext'); 甚至 [removed][removed] ...
爆炸的猴子混合使用UIKit和SpriteKit,纹理图集,场景过渡,可破坏的地形。 重新制作经典的DOS游戏,并了解可破坏的地形和场景过渡。
lazy-lambda:Lazy Lambda —使用SpriteKit在Haskell中的松散鸟类克隆
一个使用Swift 4和iOS SpriteKit的通用iOS游戏。 要求 iOS10 斯威夫特4 Xcode9 执照 MIT许可证(MIT) 版权所有(c)2015,koofrank 特此免费授予获得该软件和相关文档文件(“软件”)副本的任何人无限制地处理...
用于动态Sprite的Scss Mixin用法: 参数:dynamic-sprite(宽度,图像数量,srite.png的高度,sprite.png的路径,浮动方向) 例如。: @include dynamic-sprite(50px,10,67,'sprite.png的路径','左');重要的:...
支持的最低Unity版本:2019.3描述Sprite Dicing是的编辑器扩展,它允许将一组较大的sprite纹理拆分为小块,丢弃相同的块,将它们烘焙为atlas纹理,然后在运行时无缝重构原始sprite以进行渲染。 在使用具有相同面积...
psd2sprite 将PSD转换为SpriteSheet。 用法 首先,在您的项目中安装此模块。 $ npm install psd2sprite 将此模块导入您的源代码,然后按如下所示进行调用。 var psd2sprite = require('psd2sprite'); psd2sprite...
spriteplus是一个golang库,旨在与出色的库一起使用。 它提供了一个通用的SpriteSheet接口和一些实现。 安装 go get github.com/cebarks/spriteplus 用法 import "github.com/cebarks/spriteplus" 雪碧表 //Create ...
如果您以前没有使用过 ,请务必查看指南,因为它解释了如何创建以及安装和使用 Grunt 插件。 熟悉该过程后,您可以使用以下命令安装此插件: npm install grunt-image-sprite --save-dev 安装插件后,可以使用...
let spriteData = gulp.src(sprite_path + dir + "/*").pipe( spritesmith({ imgName: dir + "-sprite.png", // 合成后的图片命名 cssName: dir + "-sprite.scss", // 合成后的图标样式 padding: 5, // 雪碧图中...
Tuts+ 教程:使用 Swift 和 Sprite Kit 创建 Space Invaders:Sprite Kit 介绍导师:詹姆斯·泰纳在本系列中,我将教您如何使用 Sprite Kit 和 Swift 编程语言创建受太空入侵者启发的游戏。 在此过程中,您将了解 ...
检查和操作Phaser Sprite(通过dat.gui)。 安装 凉亭 bower install -S samme/phaser-sprite-gui NPM npm install -S phaser-sprite-gui 如果无法编译,请改用 CommonJS / Webpack 它应该工作。 导出的构造函数...
补间精灵TweenMax.js的简单Sprite动画插件有关更多信息,请访问顺序基本顺序 // perform the sequence listvar sequenceList = [ "./path/sequence1.png" , "./path/sequence2.png" , "./path/sequence3.png" ] ;...
这是因为版本2可供所有人免费使用,而版本3则需要购买昂贵的许可证进行商业使用。 请参阅许可证信息。 表中的内容 为什么 是一个很棒的免费表情符号集合。 不幸的是,它的PNG子图不是很有用,因为: 没有提供低于...
unity 资源包 精灵特效 shader :All In 1 Sprite Shader 3.43 来自资源商店
SpriteKit-TexturePacker 使用 TexturePacker 轻松创建动画的简单 SpriteKit 项目。 完整的教程可从