cocos 2dx--------通过Texture或SpriteFrameCache来创建Sprite(二)

  • 通过SpriteFrameCache来创建一个Sprite 

自己创建一个plist并访问----HelloWorld的Demo模版中的HelloWorld::init()添加以下代码,具体解释见注释。。。

bool HelloWorld::init()
{
    printf(" %s,%d \n",__PRETTY_FUNCTION__,__LINE__);

    if ( !Scene::init() ) {  return false;   }
{
    auto visibleSize = Director::getInstance()->getVisibleSize();
    printf(" %s,%d \n",__PRETTY_FUNCTION__,__LINE__);
    
    //将plist缓存到SpriteFrameCache中
    auto spriteCache = SpriteFrameCache::getInstance();
    spriteCache->addSpriteFramesWithFile("gallop_avp.plist");

    //从SpriteFrameCache访问一个sprite
    auto spriteFrame = 
    SpriteFrameCache::getInstance()->getSpriteFrameByName("add_n.png");//传入的参数必须是在.plist文件中存在的key的值---比如<key>add_n.png</key>
    
    //创建一个sprite
    auto sprite = Sprite::createWithSpriteFrame(spriteFrame);
    sprite->setPosition(visibleSize / 2);
    
    //加载到当前sence
    this->addChild(sprite);
    printf(" %s,%d \n",__PRETTY_FUNCTION__,__LINE__);
}
    return true;

}
  • 通过Texture2D创建一个Sprite

同理在HelloWorld::init()中加入以下代码。。具体解释见代码

bool HelloWorld::init()
{
    printf(" %s,%d \n",__PRETTY_FUNCTION__,__LINE__);

    if ( !Scene::init() ) {  return false;   }

    //读取确认的窗口尺寸大小
    auto visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();

    //载入整张图片(包含许多需要的小块图片)
    Image *image = new Image;
    image->initWithImageFile("poker.jpeg");
    
    //创建一个Texture
    Texture2D* texture = new Texture2D();
    texture->initWithImage(image);

    //通过Texturecache创建一个Sprite
    SpriteFrame * spframe = SpriteFrame::createWithTexture(texture, Rect(0, 0, 150,200));  //截取的图片的部分
    Sprite *sp = Sprite::createWithSpriteFrame(spframe);

    //设置Sprite的位置在窗口中央
    sp->setPosition(visibleSize / 2);
    this->addChild(sp);

    return true;

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值