精灵类即是Sprite,它实际上就是一张二维图。

它首先直接继承了Node类,因此,它具有节点的特征,同时,它也直接继承了TextureProtocol类,因此,它也具有纹理的基本特征。

这里,有必要普及一下纹理的含义。个人理解,纹理在这里其实也是二维图像(当然也有三维的纹理),它描述了物体表面的细节,通过某种投影或者映射的方式,让物体本身看起来更加的细腻和真实。换一句话说,纹理就是对物理表面细节的描述,它的存在将物体整体和细节区分开来,因此,可通过修改细节可以改变物体的使用场景。(啰嗦了)

或许正因为Sprite继承的两种不同特性,它又直接派生出了两个类来具体化这两种特性,它们分别是:PhysicalSprite和Skin。

Sprite *bg = Sprite::create("background.png");
bg->setAnchorPoint(Vec2::ZERO);// lower left
this->addChild(bg, ); auto tree1 = Sprite::create("tree1.png", Rect(, , , ));
tree1->setPosition(Vec2(, ));
this->addChild(tree1, ); Texture2D *cache = Director::getInstance()->getTextureCache()->addImage("tree1.png");
auto tree2 = Sprite::create();
tree2->setTexture(cache);
tree2->setTextureRect(Rect(, , , ));
tree2->setPosition(Vec2(, ));
this->addChild(tree2, );

运行结果:

图1 纹理对象创建Sprite对象

使用精灵帧缓存:

这里的plist可用Zwoptex创建,试了一下,很简单,正版需要付费,大约60多RMB。

auto bg = Sprite::create("background.png");
bg->setAnchorPoint(Vec2::ZERO);
this->addChild(bg, ); SpriteFrameCache *frameCache = SpriteFrameCache::getInstance();
frameCache->addSpriteFramesWithFile("SpirteSheet.plist"); auto mountain1 = Sprite::createWithSpriteFrameName("mountain1.png");
mountain1->setAnchorPoint(Vec2::ZERO);
mountain1->setPosition(Vec2(-, ));
this->addChild(mountain1, ); SpriteFrame *hero = frameCache->getSpriteFrameByName("hero1.png");
Sprite *hero1 = Sprite::createWithSpriteFrame(hero);
hero1->setPosition(Vec2(, ));
this->addChild(hero1, );

运行结果:

图2 运行结果展示

Cocos2d-x学习笔记(八)精灵对象的创建的更多相关文章

  1. java学习笔记——java中对象的创建,初始化,引用的解析

    如果有一个A类. 1.例如以下表达式: A  a1 = new A(); 那么A是类,a1是引用.new A()是对象.仅仅是a1这个引用指向了new A()这个对象. 2.又如: A  a2; A代 ...

  2. go微服务框架kratos学习笔记八 (kratos的依赖注入)

    目录 go微服务框架kratos学习笔记八(kratos的依赖注入) 什么是依赖注入 google wire kratos中的wire Providers injector(注入器) Binding ...

  3. Learning ROS forRobotics Programming Second Edition学习笔记(八)indigo rviz gazebo

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

  4. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...

  5. Go语言学习笔记八: 数组

    Go语言学习笔记八: 数组 数组地球人都知道.所以只说说Go语言的特殊(奇葩)写法. 我一直在想一个人参与了两种语言的设计,但是最后两种语言的语法差异这么大.这是自己否定自己么,为什么不与之前统一一下 ...

  6. JavaScript:学习笔记(9)——Promise对象

    JavaScript:学习笔记(9)——Promise对象 引入Promise Primose是异步编程的一种解决方案,比传统的解决方案回调函数和事件更加合理和强大.如下面为基于回调函数的Ajax操作 ...

  7. 《python基础教程(第二版)》学习笔记 类和对象(第7章)

    <python基础教程(第二版)>学习笔记 类和对象(第7章) 定义类class Person:    def setName(self,name):        self.name=n ...

  8. 【opencv学习笔记八】创建TrackBar轨迹条

    createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...

  9. JavaScript:学习笔记(10)——XMLHttpRequest对象

    JavaScript:学习笔记(10)——XMLHttpRequest对象 XHR对象 使用XMLHttpRequest (XHR)对象可以与服务器交互.您可以从URL获取数据,而无需让整个的页面刷新 ...

  10. Redis学习笔记八:集群模式

    作者:Grey 原文地址:Redis学习笔记八:集群模式 前面提到的Redis学习笔记七:主从复制和哨兵只能解决Redis的单点压力大和单点故障问题,接下来要讲的Redis Cluster模式,主要是 ...

随机推荐

  1. PAT Maximum Subsequence Sum[最大子序列和,简单dp]

    1007 Maximum Subsequence Sum (25)(25 分) Given a sequence of K integers { N~1~, N~2~, ..., N~K~ }. A ...

  2. PAT 1003 Emergency[图论]

    1003 Emergency (25)(25 分) As an emergency rescue team leader of a city, you are given a special map ...

  3. MVC html.beginform & ajax.beginform

    1.指定表单提交方式和路径等 @using (Html.BeginForm("Index", "Home", FormMethod.Get, new { nam ...

  4. CentOS6.5安装Redis数据库

    1.以安装redis2.8.19为例 下载安装包:http://redis.io tar zxvf redis-2.8.19.tar.gz #解压 cd redis-2.8.19 #进入解压后的文件夹 ...

  5. Vue.js学习笔记——表单控件实践

    最近项目中使用了vue替代繁琐的jquery处理dom的数据更新,个人非常喜欢,所以就上官网小小地实践了一把. 以下为表单控件的实践,代码敬上,直接新建html文件,粘贴复制即可看到效果~ <! ...

  6. JS参差不齐的数组

    <html><head> <title>参差不齐的数组</title> <meta charset="utf-8"> & ...

  7. 【设置】Nginx配置文件具体配置解释

    #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...

  8. CXF创建webservice客户端和服务端

    转 一.CXF的介绍 Apache CXF是一个开源的WebService框架,CXF大大简化了Webservice的创建,同时它继承了XFire的传统,一样可以和spring天然的进行无缝的集成.C ...

  9. MAX_STATEMENT_TIME uses confusing syntax

    From   https://bugs.mysql.com/bug.php?id=72540   [5 May 2014 18:46] Morgan Tocker Description: Via C ...

  10. MySQL从删库到跑路(四)——MySQL数据库创建实例

    作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.创建数据库 1.创建数据库 创建数据库,指定数据库的默认字符集为utf8.create database sch ...