【COCOS2D-X v4 C++ 学习笔记】Sprite


参考自官方文件 精灵Sprite

1.创建Sprite

1.1简单创建

使用图像创建

使用整张图像,图像是多少的分辨率,创建出来的精灵就是多少的分辨率。

auto mySprite = Sprite::create("mysprite.png");

结果:

 

使用矩形创建

使用矩形创建一个尺寸只有原始图像一部分的精灵,初始 x 坐标,初始 y 坐标,矩形宽,矩形高。其中,左上角的坐标是 (0, 0)。

auto mySprite = Sprite::create("mysprite.png", Rect(0,0,40,40));

结果:

 

1.2使用图集创建

图集(Sprite Sheet) 是通过专门的工具将多张图片合并成一张大图,并通过 plist 等格式的文件索引的资源

//加载缓存类,并将图集存放至缓存类之中
auto* m_frameCache = SpriteFrameCache::getInstance();
m_frameCache->addSpriteFramesWithFile("run.plist", "run.png");

//读取缓存集中的每一张图片
Vector<SpriteFrame*> frameArray;
for (int i = 1; i < 9; i++)
{
	char s[20];
  sprintf(s, "run%d.png", i);
  auto* frame = m_frameCache->getSpriteFrameByName(s);
	frameArray.pushBack(frame);
}

//使用缓存制作动画
Animation* animation = Animation::createWithSpriteFrames(frameArray);
animation->setLoops(-1);//表示无限循环播放
animation->setDelayPerUnit(0.1f);//每两张图片的时间隔,图片数目越少,间隔最小就越小

auto* action = Animate::create(animation);
sprite->runAction(action);

 

1.3使用精灵缓存创建

精灵缓存可以提高访问速度

//创建精灵缓存:
auto mysprite = Sprite::createWithSpriteFrameName("mysprite.png");

//从精灵的缓存对象 SpriteFrameCache 访问一个精灵
auto newspriteFrame = SpriteFrameCache::getInstance()->getSpriteFrameByName("Blue_Front1.png");
auto newSprite = Sprite::createWithSpriteFrame(newspriteFrame);

 

2.控制Sprite

2.1锚点

// 左下
mySprite->setAnchorPoint(0, 0);

// 左上
mySprite->setAnchorPoint(0, 1);

// 右下
mySprite->setAnchorPoint(1, 0);

// 右上
mySprite->setAnchorPoint(1, 1);

// 默认
mySprite->setAnchorPoint(0.5, 0.5);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值