您的位置:首页 > 移动开发 > Cocos引擎

Cocos2d-x精灵,上下跳动,设置比例,旋转,扭曲,透明度

2014-10-09 11:09 423 查看
创建一个Cocos2d-X工程,工程的目录如下图所示:

在Resourcees文件夹中添加一张png格式的图片

在HelloWorldScene.cpp文件中的bool HelloWorld::init()函数中添加下面的代码

[cpp] view plaincopy

//调用CCLayer的父类的初始化函数

if ( !CCLayer::init() )

{

return false;

}

//创建精灵

CCSprite* sprite = CCSprite::create("blocks.png");

CCSprite* sprite1 = CCSprite::create("blocks.png");

/*设置精灵移动

create()中的第一个参数是动作经过的时间,第二个参数是跳跃的方向,

第三个参数是跳跃的高度,第四个参数是跳跃次数

ccp(0, 0)表示*/

sprite->runAction(CCJumpBy::create(60, ccp(0, 0), 100, 100));

//将精灵加到层上

this->addChild(sprite);

//将场景加到层上

addChild(sprite1); return true;

程序执行结果:(实现了精灵的上下跳动)

在上面的代码下面增加下面的代码实现设置精灵的位置

[cpp] view plaincopy

sprite->setPosition(CCPoint(100, 200));

sprite1->setPosition(CCPoint(300, 200));

执行结果:

在HelloWorldScene.cpp文件中的bool HelloWorld::init()函数中添加下面的代码实现设置比例

[cpp] view plaincopy

//调用CCLayer的父类的初始化函数

if ( !CCLayer::init() )

{

return false;

}

//创建精灵

CCSprite* sprite = CCSprite::create("blocks.png");

CSprite* sprite1 = CCSprite::create("blocks.png");

//将精灵加到层上

his->addChild(sprite);

//将场景加到层上

ddChild(sprite1);

//设置精灵的位置

sprite->setPosition(CCPoint(100, 200));

sprite1->setPosition(CCPoint(300, 200));

//设置比例

sprite->setScale(.5f);

sprite->setScaleX(.5f);

sprite->setScale(2); return true;

执行结果:

在HelloWorldScene.cpp文件中的bool HelloWorld::init()函数中添加下面的代码实现精灵旋转

[cpp] view plaincopy

//调用CCLayer的父类的初始化函数

if ( !CCLayer::init() )

{

return false;

}

//创建精灵

CCSprite* sprite = CCSprite::create("blocks.png");

CCSprite* sprite1 = CCSprite::create("blocks.png");

//将精灵加到层上

this->addChild(sprite);

//将场景加到层上

addChild(sprite1);

//设置精灵的位置

sprite->setPosition(CCPoint(100, 200));

sprite1->setPosition(CCPoint(300, 200));

// setRotation旋转,角度为单位,正数是顺时针,负数是逆时针

sprite->setRotation(-80);

sprite->setRotationY(180); return true;

执行结果:

在HelloWorldScene.cpp文件中的bool HelloWorld::init()函数中添加下面的代码实现精灵扭曲跟精灵在一个平面上旋转差不多

[cpp] view plaincopy

//调用CCLayer的父类的初始化函数

if ( !CCLayer::init() )

{

return false;

}

//创建精灵

CCSprite* sprite = CCSprite::create("blocks.png");

CCSprite* sprite1 = CCSprite::create("blocks.png");

//将精灵加到层上

this->addChild(sprite);

//将场景加到层上

addChild(sprite1);

//设置精灵的位置

sprite->setPosition(CCPoint(100, 200));

sprite1->setPosition(CCPoint(300, 200));

// setSkewX 扭曲,跟单向量的旋转差不多,但是不会颠倒

sprite->setSkewX(180);

sprite1->setRotationX(180); return true;

执行结果:

在HelloWorldScene.cpp文件中的bool HelloWorld::init()函数中添加下面的代码实现精灵扭曲跟精灵在一个平面上旋转差不多

[cpp] view plaincopy

//调用CCLayer的父类的初始化函数

if ( !CCLayer::init() )

{

return false;

}

//创建精灵

CCSprite* sprite = CCSprite::create("blocks.png");

CSprite* sprite1 = CCSprite::create("blocks.png");

//将精灵加到层上

his->addChild(sprite);

//将场景加到层上

ddChild(sprite1);

//设置精灵的位置

sprite->setPosition(CCPoint(100, 200));

sprite1->setPosition(CCPoint(300, 200));

/ setFlipX 反转,跟setRotationY(180)效果一样

sprite->setFlipX(true);

return true;

执行结果:

在HelloWorldScene.cpp文件中的bool HelloWorld::init()函数中添加下面的代码设置精灵的透明度

[cpp] view plaincopy

//调用CCLayer的父类的初始化函数

if ( !CCLayer::init() )

{

return false;

}

//创建精灵

CCSprite* sprite = CCSprite::create("blocks.png");

CCSprite* sprite1 = CCSprite::create("blocks.png");

//将精灵加到层上

this->addChild(sprite);

//将场景加到层上

addChild(sprite1);

//设置精灵的位置

sprite->setPosition(CCPoint(100, 200));

sprite1->setPosition(CCPoint(300, 200));

// setOpacity 透明度 0~255(取值范围),255不透明,0全透明

sprite->setOpacity(128);

return true;

执行结果

在HelloWorldScene.cpp文件中的bool HelloWorld::init()函数中添加下面的代码实现隐藏精灵

[cpp] view plaincopy

//调用CCLayer的父类的初始化函数

if ( !CCLayer::init() )

{

return false;

}

//创建精灵

CCSprite* sprite = CCSprite::create("blocks.png");

CCSprite* sprite1 = CCSprite::create("blocks.png");

//将精灵加到层上

this->addChild(sprite);

//将场景加到层上

addChild(sprite1);

//设置精灵的位置

sprite->setPosition(CCPoint(100, 200));

sprite1->setPosition(CCPoint(300, 200));

// setVisible 是否可见

sprite->setVisible(false);

return true;

执行结果:

源地址:http://cn.cocos2d-x.org/tutorial/show?id=1601
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐