cocos2d-x 3.1.1 学习笔记[2]Sprite 精灵
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 精灵的更多相关文章
- [XMPP]iOS聊天软件学习笔记[一]
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- cocos2d-x 3.1.1学习笔记[23]寻找主循环 mainloop
文章出自于 http://blog.csdn.net/zhouyunxuan cocos2d到底是怎样把场景展示给我们的,我一直非常好奇. 凭个人猜想,引擎内部的结构类似于这样 while(true ...
- cocos2d-x 3.1.1 学习笔记[3]Action 动作
这些动画貌似都非常多的样子,就所有都创建一次. 代码例如以下: /* 动画*/ auto sp = Sprite::create("card_bg_big_26.jpg"); Si ...
- cocos2d-x 3.1.1 学习笔记[21]cocos2d-x 创建过程
文章出自于 http://blog.csdn.net/zhouyunxuan RootViewController.h #import <UIKit/UIKit.h> @interfac ...
- cocos2d-x 3.1.1 学习笔记[4]GridActions 网格动画
文章写的 http://blog.csdn.net/zhouyunxuan 老样子.见代码. //GridActions can only used on NodeGrid auto nodeGri ...
- cocos2d-x 3.1.1 学习笔记[11] http请求 + json解析
//http须要引入的头文件和命名空间 #include <network/HttpClient.h> using namespace network; //json须要引入的头文件 #i ...
- [XMPP]iOS聊天软件学习笔记[四]
昨天完成了聊天界面,基本功能算告一段落 开发时间:五天(工作时间) 开发工具:xcode6 开发平台:iOS8 XMPP框架:XMPPFramework git clone https://githu ...
- [XMPP]iOS聊天软件学习笔记[三]
今天做了好友界面,其实xmpp内部已经写好很多扩展模块,所以使用起来还是很方便的 开发时间:五天(工作时间) 开发工具:xcode6 开发平台:iOS8 XMPP框架:XMPPFramework gi ...
- [XMPP]iOS聊天软件学习笔记[二]
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
随机推荐
- 分分钟教会你使用HTML写Web页面
在学习怎样使用HTML编写网页之前,我们必须先搞清楚什么是HTML?当然了不是系统的给大家介绍HTML的前世今生,假设对其身世感兴趣的小伙伴能够去问度娘,她会给你想要的答案. 所谓HTML,就是我们常 ...
- 打印org.eclipse.xsd.XSDSchema对象
由于网上关于Eclipse XSD的中文资料比較少,可是有的时候.我们须要使用Eclipse XSD的API去构造或者改动一个XSD文件. 那么当我们创建了org.eclipse.xsd.XSDSch ...
- CodeForces 371C Hamburgers
B题又耽误时间了...人太挫了.... C. Hamburgers time limit per test 1 second memory limit per test 256 megabytes i ...
- byte为什么要与上0xff(转)
无意间翻看之间的代码,发现了一段难以理解的代码. byte[] bs = digest.digest(origin.getBytes(Charset.forName(charsetName))) ; ...
- 如果用float实现居中
今天发现自己做的一个项目中有个图片切换的下面的按钮不是固定个数,程序那边根据循环实现放几个切换的按钮,但是按钮相对于整体的要居中,刚开始想着用display:inline-block;实现,但是ie6 ...
- ecshop 微信支付插件
眼下已完毕支付測试,可以支付成功,支付逻辑自己实现.后台通知.发货通知.订单查询未測. 当中用到了redis 下载
- linux 配置 mail server
一.配置yum安装工具 ① 进入yum目录 [root@bj ~]# cd /etc/yum.repos.d ② 配置yum.repo [root@bj yum.repos.d]# cprhel- ...
- Android WebView挂马漏洞--各大厂商纷纷落马
本文章由Jack_Jia编写,转载请注明出处. 文章链接: http://blog.csdn.net/jiazhijun/article/details/11131891 作者:Jack_Jia ...
- Maven 建 Struts2 基本实现 CURD Controller
开发环境 开发工具:Eclipse 数据库:MySQL server:Tomcat Struts2 请求原理流程图 构建一个 web maven project,在pom.xml引入struts2的j ...
- 面向接口可扩展框架之“Mvc扩展框架及DI”
面向接口可扩展框架之“Mvc扩展框架及DI” 标题“Mvc扩展框架及DI”有点绕口,我也想不出好的命名,因为这个内容很杂,涉及多个模块,但在日常开发又密不可分 首先说Mvc扩展框架,该Mvc扩展就是把 ...