cocos2d-x 3.1.1 学习笔记[2]Sprite 精灵
2014-06-30 17:28
543 查看
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:精灵的中心点。
创建精灵的七种方法
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 精灵
- 【Cocos2d-html5游戏引擎学习笔记(5)】Sprite精灵渲染
- cocos2d-x 3.1.1 学习笔记[19] ClippingNode 可以镂空别的精灵
- cocos2d-x学习笔记(16)--spritesheet(精灵表单)
- cocos2d-x 3.1.1 学习笔记[18] Sprite创建之旅
- (转)cocos2d-x学习笔记(三)让精灵按照自己设定的运动轨迹行动(曲线移动)。(以椭圆轨迹为例)
- 【Cocos2d-X开发学习笔记】第06期:渲染框架之精灵类(CCSprite)的使用
- cocos2d-x学习笔记-CCSprite(精灵)
- cocos2d-x学习笔记-CCSprite(精灵)
- cocos2d-x学习笔记-SpriteBatchNode的优化原理
- 【Cocos2d-html5游戏引擎学习笔记(10)】自定义精灵动画
- cocos2d-x学习笔记(2)--向游戏中添加角色(sprite)
- 【Cocos2d-X开发学习笔记】第06期:渲染框架之精灵类(CCSprite)的使用
- cocos2d-x学习笔记02——精灵贴图
- cocos2d-x学习笔记-CCSprite(精灵)
- cocos2d-x学习笔记(三)让精灵按照自己设定的运动轨迹行动(曲线移动)。(以椭圆轨迹为例)。
- cocos2d-x的Sptrite Action SpriteFrame Animation texture使用的简单方法---学习笔记
- 学习笔记之cocos2d-x2.1.1实现多个精灵的拖动
- Cocos2d-x学习笔记(二) —— 如何添加一个精灵
- cocos2d-x学习笔记-CCSprite(精灵)