在Cocos2d-X中玩转精灵

创建一个Cocos2d-X工程,工程的目录如下图所示:
在Cocos2d-X中玩转精灵_第1张图片


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

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

   //初始化父类
    if ( !CCLayer::init() )
    {
        return false;
    }

    //创建精灵
  	CCSprite* sprite = CCSprite::create("blocks.png");
	CCSprite* sprite1 = CCSprite::create("blocks.png");

    //精灵跳跃  
    //第一个参数:完成跳跃所花的时间  
    //第一个参数:跳跃到的位置  
    //第一个参数:跳跃的高度  
    //第一个参数:跳跃的次数  
	sprite->runAction(CCJumpBy::create(60, ccp(0, 0), 100, 100));

    //将精灵加到层上
	this->addChild(sprite);

    //将精灵添加到层上
	addChild(sprite1);   
	
	return true;


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

在Cocos2d-X中玩转精灵_第2张图片


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

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


执行结果:

在Cocos2d-X中玩转精灵_第3张图片


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

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

	
        //设置比例
	 sprite->setScale(.5f);
	 sprite->setScaleX(.5f);
	 sprite->setScale(2);    return  true;

执行结果:

在Cocos2d-X中玩转精灵_第4张图片

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

   //调用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;


执行结果:
在Cocos2d-X中玩转精灵_第5张图片


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

 //调用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;


执行结果:

在Cocos2d-X中玩转精灵_第6张图片


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

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

	// setFlipX 反转,跟setRotationY(180)效果一样
	 sprite->setFlipX(true);

     return true;

执行结果:

在Cocos2d-X中玩转精灵_第7张图片


在HelloWorldScene.cpp文件中的bool HelloWorld::init()函数中添加下面的代码设置精灵的透明度
//调用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;

执行结果

在Cocos2d-X中玩转精灵_第8张图片


在HelloWorldScene.cpp文件中的bool HelloWorld::init()函数中添加下面的代码实现隐藏精灵
   //调用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;

执行结果:
在Cocos2d-X中玩转精灵_第9张图片




你可能感兴趣的:(在Cocos2d-X中玩转精灵)