Sprite应该是用到最多的一个类吧。无法想像一个游戏没有精灵将怎样进行愉快的玩耍。

Sprite继承于Node 和 TextureProtocol.

Sprite是一个2d的图像。

Sprite能够由一个图像创建,或者截取图片中一个矩形创建。

为了优化Sprite的渲染,请遵守下面几点最佳方法。

把你的Sprite都放在同一个精灵表里面

在创建Sprite的时候使用同样的混合方法

批处理会自己主动批处理你的Sprite(使用一个OpenGL call 画出全部的Sprite)

为了获得额外的5%-10%或很多其它的渲染,你能够把SpriteBatchNode来创建精灵。

可是有着下面的限制。

Alias/Antialias属性属于SpriteBatchNode,所以你不能单独的设置aliased属性。

混合方法属性属于SpriteBatchNode,所以你不能单独的设置混合方法属性。

ParallaxNode不支持。可是能够通过代理Sprite来模拟。

Sprite仅仅能把其它的Sprite(或者Sprite的子类)当作子类

默认的anchorPoint为(0,0);

词汇解释

AnchorPoint:精灵的中心点。

创建精灵的七种方法

    //1.  创建一个神马都没有的精灵放到场景里面
// sp = Sprite::create();
//2. 依据文件名称创建一个精灵
// sp = Sprite::create("splash.png");
//3. 从图片中截取一个矩形来作为精灵
// sp = Sprite::create("splash.png", Rect(0, 0, 50, 50));
//4. 依据SpriteFrame创建一个精灵
// SpriteFrameCache::getInstance()->addSpriteFramesWithFile("home.plist");
// auto spriteFrame = SpriteFrameCache::getInstance()->getSpriteFrameByName("icon_touxiangkuang_0.png");
// sp = Sprite::createWithSpriteFrame(spriteFrame);
//5. 依据FrameName创建一个精灵
// SpriteFrameCache::getInstance()->addSpriteFramesWithFile("home.plist");
// sp = Sprite::createWithSpriteFrameName("icon_touxiangkuang_0.png");
//6. 根绝TextTure创建一个精灵
// auto f_sp = Sprite::create("splash.png");
// sp = Sprite::createWithTexture(f_sp->getTexture());
//7. 依据TextTure中截取一个矩形来创建精灵
// auto f_sp = Sprite::create("splash.png");
// sp = Sprite::createWithTexture(f_sp->getTexture(), Rect(0, 0, 300, 300));
 /*
* ---------------------------------------------------------------
* Sprite的属性
* ---------------------------------------------------------------
*/
sp = Sprite::create("card_bg_big_26.jpg");
sp->setAnchorPoint(Vec2(0.5, 0.5));
sp->setPosition(Vec2(320, 480));
// //顺时针旋转三十度
// sp->setRotation(30);
// //设置是否可见
// sp->setVisible(true);
// //设置rgb 255 255 255 为原画
// sp->setColor(Color3B(0, 255,0));
// //总体缩放0.8
// sp->setScale(0.8);
// //是否关于x翻转
// sp->setFlippedX(true);
// //是否关于y翻转
// sp->setFlippedY(true);
// //绕x轴旋转三十度
// sp->setSkewX(30);
// //绕y轴旋转三十度
// sp->setSkewY(30); //获取这个对象的矩形
Rect rect = sp->getBoundingBox();
//设置这个精灵的tag
sp->setTag(520);
//设置精灵的新的textture
// sp->setTexture("HelloWorld.png");
// sp->setTexture(cocos2d::Texture2D *texture);
//使用TextTure中的矩形
// sp->setTextureRect(Rect(0, 0, 30, 30)); sp->setGlobalZOrder(1);
sp->setLocalZOrder(1); // sp->setDirty(true);
// sp->setContentSize(Size(100, 100)); CCInteger* num = CCInteger::create(5);
sp->setUserData(num);
log("UserData is %d",((CCInteger *)sp->getUserData())->getValue());

cocos2d-x 3.1.1 学习笔记[2]Sprite 精灵的更多相关文章

  1. [XMPP]iOS聊天软件学习笔记[一]

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  2. cocos2d-x 3.1.1学习笔记[23]寻找主循环 mainloop

    文章出自于  http://blog.csdn.net/zhouyunxuan cocos2d到底是怎样把场景展示给我们的,我一直非常好奇. 凭个人猜想,引擎内部的结构类似于这样 while(true ...

  3. cocos2d-x 3.1.1 学习笔记[3]Action 动作

    这些动画貌似都非常多的样子,就所有都创建一次. 代码例如以下: /* 动画*/ auto sp = Sprite::create("card_bg_big_26.jpg"); Si ...

  4. cocos2d-x 3.1.1 学习笔记[21]cocos2d-x 创建过程

    文章出自于  http://blog.csdn.net/zhouyunxuan RootViewController.h #import <UIKit/UIKit.h> @interfac ...

  5. cocos2d-x 3.1.1 学习笔记[4]GridActions 网格动画

    文章写的  http://blog.csdn.net/zhouyunxuan 老样子.见代码. //GridActions can only used on NodeGrid auto nodeGri ...

  6. cocos2d-x 3.1.1 学习笔记[11] http请求 + json解析

    //http须要引入的头文件和命名空间 #include <network/HttpClient.h> using namespace network; //json须要引入的头文件 #i ...

  7. [XMPP]iOS聊天软件学习笔记[四]

    昨天完成了聊天界面,基本功能算告一段落 开发时间:五天(工作时间) 开发工具:xcode6 开发平台:iOS8 XMPP框架:XMPPFramework git clone https://githu ...

  8. [XMPP]iOS聊天软件学习笔记[三]

    今天做了好友界面,其实xmpp内部已经写好很多扩展模块,所以使用起来还是很方便的 开发时间:五天(工作时间) 开发工具:xcode6 开发平台:iOS8 XMPP框架:XMPPFramework gi ...

  9. [XMPP]iOS聊天软件学习笔记[二]

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

随机推荐

  1. (step6.3.2)hdu 1068(Girls and Boys——二分图的最大独立集)

    题目大意:第一行输入一个整数n,表示有n个节点.在接下来的n行中,每行的输入数据的格式是: 1: (2) 4 6 :表示编号为1的人认识2个人,他们分别是4.6: 求,最多能找到多少个人,他们互不认识 ...

  2. 多校第五场 归并排序+暴力矩阵乘+模拟+java大数&amp;记忆化递归

    HDU 4911 Inversion 考点:归并排序 思路:这题呀比赛的时候忘了知道能够用归并排序算出逆序数,可是忘了归并排序的实质了.然后不会做-- 由于看到题上说是相邻的两个数才干交换的时候.感觉 ...

  3. Dom4j和Xpath(转)

    1.DOM4J简介 DOM4J是 dom4j.org 出品的一个开源 XML 解析包.DOM4J应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM,SAX 和JAXP. DOM4J使 ...

  4. KMP(Knuth-Morris-Pratt)算法

    一.朴素匹配算法 也就是暴力匹配算法.设匹配字符串的长度为n,模式串的长度为m,在最坏情况下,朴字符串匹配算法执行时间为O((n - m + 1)m). 假设m = n / 2, 那么该算法的复杂度就 ...

  5. [C++]引用浅析

    Date:2013-12-22 Summary: 引用数据类型的一些概念记录(沟通中提到引用必须结合语境才能知道说的是引用变量还是“引用”这一行为,再次提到引用指的一般是引用变量) Contents: ...

  6. copy算法

     copy------强化效率无所不用其极 copy(first,last,result)算法可将输入区间[first,last)内的元素拷贝到输出区间[result,result+(last-f ...

  7. 因特网的IP协议是不可靠无连接的,那为什么当初不直接把它设计为可靠的?

    因特网使用的IP协议是无连接的,因此其传输是不可靠的. 这样easy使人们感到因特网非常不可靠,那为什么当初不直接把它设计为可靠的? 先打一个例如.邮局寄送的平信非常像无连接的IP数据报.每封平信可能 ...

  8. ipv6加英文的中括号访问

    加英文的中括号就可以,如[2001:4998:c:e33::1004],我发现这是yahoo首页.但并不是所有IPv6网站都可以通过IPv6地址访问,跟IPv4一样,网站服务器端可以只绑定域名,不接受 ...

  9. cocos2d-x游戏循环和日程安排

    每场比赛有一个程序执行周期继续.这是导演对象来管理非常维修.在运动假设需要的场景精神,我们可以使用计时器在游戏圈(Scheduler)精灵和其他对象进行调度. 由于Node类封装了Scheduler类 ...

  10. Wix学习整理(3)——关于Windows Installer和MSI

    原文:Wix学习整理(3)--关于Windows Installer和MSI 关于Windows Installer Windows Installer是微软Windows操作系统自带的一个软件安装和 ...