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

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

概述一.Sprite的概念          Sprite,即精灵。在Cocos2d-x官网上,Sprite是这样定义的:           Cocos2d中的精灵和其他游戏引擎中的精灵相似,它可以移动,旋转,缩放,执行动画,并接受其他转换。Cocos2dx的Sprite由Texure,frame和animation组成,由openes负责渲染。主要的类关系如下:  简单过程可描述为:使用Textu 一.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,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的原理。 总结

以上是内存溢出为你收集整理的Cocos2d-x从入门精通第十课《Cocos2d-x中的Sprite》全部内容,希望文章能够帮你解决Cocos2d-x从入门到精通第十课《Cocos2d-x中的Sprite》所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1070270.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存