在Cocos2d-X中玩转精灵
创建一个Cocos2d-Xproject,project的文件夹例如以下图所看到的:
在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;程序运行结果:(实现了精灵的上下跳动)
在上面的代码以下添加以下的代码实现设置精灵的位置
sprite->setPosition(CCPoint(100, 200)); sprite1->setPosition(CCPoint(300, 200));
运行结果:
在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;运行结果:
在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;
运行结果:
在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;
运行结果:
在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;运行结果:
在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;运行结果
在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;
运行结果:
浙公网安备 33010602011771号