1, 使用图像创建精灵
auto sprite = Sprite::create( "Icon.png");
使用图像的一部分创建精灵
//Rect(x坐标, y坐标, 宽, 高)
auto sprite = Sprite::create( "Icon.png", Rect(0, 0, 50, 50));
2,通过精灵帧创建精灵
(1)
//利用图片的部分区域创建精灵帧
auto frame = SpriteFrame::create("Icon.png", Rect(0, 0, 50, 50));
auto sprite = Sprite::createWithSpriteFrame(frame);
(2)
//创建精灵帧缓存,添加精灵列表
auto spritecache = SpriteFrameCache::sharedSpriteFrameCache();
spritecache->addSpriteFramesWithFile("sprite.plist");
//利用帧缓存中的一帧的名称创建精灵帧
SpriteFrame* frame = spritecache->spriteFrameByName("HelloWorld.png");
//通过精灵帧创建精灵
auto sprite = Sprite::createWithSpriteFrame(frame);
3, 通过帧缓存中的一帧的名称创建精灵帧
//创建精灵帧缓存,添加精灵列表
auto spritecache = SpriteFrameCache::sharedSpriteFrameCache();
spritecache->addSpriteFramesWithFile("sprite.plist");
//利用帧缓存中的一帧的名称创建精灵
auto sprite = Sprite::createWithSpriteFrameName("HelloWorld.png");
4, 通过纹理创建精灵
//创建2d纹理
auto texture = TextureCache::sharedTextureCache()->addImage("Icon.png");
auto sprite = Sprite::createWithTexture(texture);
//使用2d纹理部分区域创建精灵
auto sprite1 = Sprite::createWithTexture(texture, Rect(0, 0, 50, 50));
COCOS2D-X 3.X 版本 不在鼓励使用 SpriteBatchNode 推荐直接使用Sprite
使用Sprite满足以下条件:
- 贡献相同的纹理ID(把它们放在一个spritesheet中,就像使用
SpriteBatchNode
一样) - 确保它们使用相同的着色器和混合函数(就像使用
SpriteBatchNode
一样)