Cocos2d-x从入门到精通第十课《Cocos2d-x中的Sprite》

本文介绍了Cocos2d-x中的Sprite概念,它是一个可移动、旋转、缩放的四边形图形,用于显示单图片或序列帧图片。文章详细讲解了Sprite的三种创建方法,包括直接创建、通过纹理管理器和通过SpriteFrame创建,并强调了异步加载纹理的重要性。此外,还讨论了Sprite的常见属性设置,如位置、旋转和缩放,建议读者通过实践加深理解。
摘要由CSDN通过智能技术生成

一.Sprite的概念

         Sprite,即精灵。在Cocos2d-x官网上,Sprite是这样定义的:

 

        Cocos2d中的精灵和其他游引擎中的精灵相似,它可以移,旋放,画,并接受其他转换Cocos2dxSpriteTexureframeanimation成,由openes负责渲染。主要的关系如下简单过程可描述:使用Texture2D载图片,可以用Texture2D生成对应SpriteFrame(精灵),将SpriteFrame添加到Animation生成画数据,用Animation生成Animate(就是最作),最后用Sprite作。

 

        官网给出的解释很多,很复杂,也很官方,看完可能同学们会感到有点晕,这里我给大家说一下我对于精灵的理解:所谓精灵,其实就是一个四边形,这个四边形可以加载显示单图片和序列帧图片。同时它的四个顶点的位置,色彩,透明度等信息可以被我们控制和改变。精灵,是我们对于图型图像进行控制的基础操作物体。

 

       看了我的总结是不是有点明白sprite是个什么东东了呢。如果还是不明白也没关系,慢慢体会你就会明白了,跟着我们课程的节奏走,就能带你超神!。

 

二.Sprite的创建

        创建精灵有三种方法,代码如下:

 

    //通过直接创建的方式创建sprite
    auto sprite = Sprite::create("Logo.png");
    //添加到Layer上
    addChild(sprite);
    //设置sprite的坐标
    sprite->setPosition(Vec2(200,320));
    
    //通过贴图创建sprite
    auto sprite1 = Sprite::createWithTexture(TextureCache::getInstance()->addImage("Logo.png"));
    //添加到layer上
    addChild(sprite1);
    //设置坐标
    sprite1->setPosition(Vec2(480,320));
    
    //通过spriteFrame创建sprite
    //创建精灵帧
    auto spriteframe = SpriteFrame::createWithTexture(TextureCache::getInstance()->addImage("Logo.png"), Rect(0,0,256,162));
    //创建sprite
    auto sprite2 = Sprite::createWithSpriteFrame(spriteframe);
    //添加到Layer上
    addChild(sprite2);
    //设置坐标
    sprite2->setPosition(Vec2(480,320));

 

        从代码中我们可以看出这三种创建方式的使用。

 

        第一种方法:就是直接调用Sprite的create 方法,这是我们最常用的一种精灵创建所使用的方法,也是最容易使用的精灵创建方法,它只需要填写图片文件名称,内部进行了加载图片产生纹理的处理。

        第二种方法:通过纹理管理器加载一个图片产生纹理,并使用这个纹理来创建Sprite。这么做有什么用呢?有一个用处是在实际项目开发中,我们往往会使用TextureCache的addImageAsync 的方法去异步加载游戏中使用到的大部分的纹理,当我需要创建Sprite的时候直接从这个纹理缓存中取得就可以了。(注意:使用异步加载纹理,是为了让我们的游戏流畅的运行而不会被图片加载造成停顿。)

        第三种方法:通过SpriteFrame来创建Sprite,这种主要是我们创建animation动画的时候,会把动画的纹理加载的SpriteFrameCache中,然后播放动画的时候需要一个sprite来作为执行对象来使用,而创建该sprite的时候我们就直接从这个动画的中取得spriteFrame,来创建这个sprite。

 

三.Sprite的属性设置

       Sprite有很多属性可以用来根据我们的需要进行调整,通过源码我可以出到Sprite的都有哪些属性可以供我们来设置,使用。下面我们通过代码来看一下我们经常用到的sprite的属性,如下:

 

    //通过直接创建的方式创建sprite
    auto sprite = Sprite::create("Logo.png");
    //添加到Layer上
    addChild(sprite);
    //设置sprite的坐标
    sprite->setPosition(Vec2(200,320));
    //改变sprite的大小
    sprite->setScale(0.5,2.0);
    //改变透明度
    sprite->setOpacity(128);
    //改变角度
    sprite->setRotation(60);
    //设置是否可见
    sprite->setVisible(true);

       上面代码我们列出来了一些常用的Sprite的属性设置,通过注释相信大家能看明白一些,这些都是经常使用到的Sprite的属性,我们一定要熟练掌握,建议大家多去尝试写一下上面的代码,看看Sprite执行这些操作之后的效果是什么样子,加深我们的记忆。

 

         后面我们会讲到Cocos2d-x的Action,其实到时候我们发现Cocos2d-x的Action大多数都是通过改变执行对象本身的属性来实现的,学好Sprite的属性设置才能更好的理解Action的原理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值