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

创建一个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));


// 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));


// 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));

/ 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));

// 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));


// setVisible 是否可见
sprite->setVisible(false);

return true;


执行结果:



源地址:http://cn.cocos2d-x.org/tutorial/show?id=1601

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...