创建一个Cocos2d-X工程,工程的目录如下图所示:
在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;
执行结果:

本文详细介绍了如何使用Cocos2d-X游戏引擎进行精灵的基本操作,包括创建精灵、设置位置、调整比例、实现旋转及扭曲等效果,并展示了如何控制精灵的可见性和透明度。
2883





