Cocos精灵
来源:互联网 发布:p2p网络推广方案 编辑:程序博客网 时间:2024/05/01 12:02
精灵
创建精灵
精灵可以通过图片、纹理、精灵帧来创建,至少挂在layer上(当然可以挂在其他精灵上)。
创建方法: Sprite在Layer中的init()函数中直接创建,建好之后应该addChild这个精灵
class SpriteCreate : public Layer
{public:
static Scene* createScene()//创建自定义scene及自定义Layer(要是静态方法,以便调用)
{ Scene* scene =Scene::create();
Layer* layer =T010301SpriteCreate::create();
scene->addChild(layer);
return scene;}
bool init()
{
Layer::init();
// 演示精灵创建的代码
// 通过文件创建
Sprite* sprite = Sprite::create("Images/blocks.png");
addChild(sprite);
sprite->setPosition(200, 200);//精灵的属性——位置
// 通过纹理创建精灵,纹理是图片在内存中的表现
Texture2D* texture =Director::getInstance()->getTextureCache()->addImage("Images/b1.png");
Sprite* sprite =Sprite::createWithTexture(texture);
// 通过精灵帧来创建精灵,理解为一张大图包含了很多精灵资源,那么每个精灵图只占一部分 Texture2D* texture = Director::getInstance()->getTextureCache()->addImage("Images/blocks.png");
SpriteFrame* frame =SpriteFrame::createWithTexture(texture,Rect(0, 0, 32, 32)); //Rect表示了该精灵在大图中的位置
Sprite* sprite =Sprite::createWithSpriteFrame(frame);
精灵属性
锚点
锚点是精灵的位置的对齐点,精灵锚点的默认值是(.5f,.5f),一种百分比表达方式,(1,1)表示右上角,(0,0)表示左下角Vec2类有常量定义了常用的锚点值
Sprite* sprite =Sprite::create("Images/blocks.png");
sprite->setAnchorPoint(Vec2(0, 0)); //设置锚点位置(0,0)
sprite->setAnchorPoint(Vec2::ANCHOR_BOTTOM_LEFT); //更洋气的设置方法
旋转
以顺时针方向,以锚点为中心,旋转参数指定的角度 :sprite->setRotation(30);
变形旋转:sprite->setRotationX(30); 以及 sprite->setRotationY(30);
这个是最新的变形旋转:sprite->setRotationSkewX(180);
缩放:
按照参数指定的值,缩放比例
sprite->setScale(0.5f); 以及 sprite->setScaleX(2.0f);
颜色:
基本方式:sprite->setColor(Color3B(255, 0, 0));
更洋气的方式:sprite->setColor(Color3B::WHITE);
可见度和透明度:
sprite->setVisible(false);
sprite->setOpacity(128); // 0 ~ 255,255表示不透明,0表示透明
翻转:
沿着X轴旋转:有true和false两种sprite->setFlippedX(true);
名字和标示:
Name和Tag都是用来标识精灵的,如果标识重复,可能会出现异常
sprite->setName("abc");//必须唯一
sprite->setTag(1);
this->getChildByName("abc");
this->getChildByTag(1);
// 更换精灵显示的图片,这个是实现动画的基础(帧动画)
用: sprite->setTexture("Images/b1.png");
或者:SpriteFrame* frame =SpriteFrame::create("Images/b1.png",Rect(0, 0, 79, 46));
sprite->setSpriteFrame(frame);
大小和位置:
Rectrc = sprite->getBoundingBox();注意BoundingBox是没有set方法的
内容尺寸:
Size sz =sprite->getContentSize();Size只表示大小不表示位置
sprite->setContentSize(Size(32, 32));
sprite->setTextureRect(Rect(0, 0, 32,32));相当于截取
数据:
SetUserData()和SetUserObject()用来记录精灵数据和对象,往往第二个用的比较多
自定义精灵类
class Hero : public Sprite //自定义的精灵类
{public:
static Hero* create()
{Hero* ret = new Hero;
ret->init();
ret->autorelease();
return ret;}
bool init(){
Sprite::init();//初始化Hero相关的参数父类的init()
setTexture("Images/elephant1_Diffuse.png");// Sprite::initWithFile("Images/elephant1_Diffuse.png");//用文件直接创建,也可以用其他的:Sprite::initWithTexture或者Sprite::initWithSpriteFrame
return true;
}
};
- Cocos精灵
- Cocos 给精灵着色
- Cocos精灵帧缓存
- cocos入门3:添加精灵
- Cocos-2dx精灵部分变灰
- 7.21:对Cocos中精灵的理解
- cocos 2d android-1 精灵基本操作
- cocos加载3d精灵不显示,打印台无报错
- cocos
- Cocos
- cocos
- cocos
- cocos
- cocos
- Cocos-2d 关于多个CCSprite精灵播放同一个CCAction动画问题
- Cocos-2d 关于多个CCSprite精灵播放同一个CCAction动画问题
- Android游戏开发cocos-2d中精灵的动作测试
- day(2) cocos基础概念介绍——导演、场景、层、精灵
- acl权限和设置方法
- 用树莓派 + Python + OpenCV 实现家庭监控和移动目标探测(下)
- 在ROS中传递图像消息(一)
- 【HDU5651 BestCoder Round 77 (div1) A】【简单组合数】xiaoxin juju needs help 字符串位置重组构成回文串个数
- linux下chkconfig使用
- Cocos精灵
- JAVA文件中获取路径及WEB应用程序获取路径方法
- Cocos坐标体系
- tomcat部署
- Android Fragment嵌套ViewPager,ViewPager嵌套多个Fragment
- CSU 1697 Surface Area of Cubes (思维)
- 【错误2】启动后,一闪而过,或者进入安装主界面后也是一闪而过,非兼容性引起
- FastDFS安装/使用(一)
- gxhr API 常见用法