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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值