在我们的场景中创建精灵
auto visibleSize = Director::getInstance()->getVisibleSize();//得到场景的大小
Vec2 origin = Director::getInstance()->getVisibleOrigin();//得到场景的原点
//auto size = this->getContentSize();
//<span style="font-family: Arial, Helvetica, sans-serif;">返回场景,矩形的逻辑尺寸</span>
//float x = 0;
//float y = 0;
//x = size.width / 2;
//y = size.height / 2;
m_pTestSprite = Sprite::create("HelloWorld.png"); //在 .h文件中已经对m_pTestSprite进行了声明,如果未声明则如下声明即可。
<span style="white-space:pre"> </span>//auto m_pTestSprite = Sprite::create("HelloWorld.png");
m_pTestSprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));//使用setPosition将精灵放到场景中间
//m_pTestSprite->setPosition(Vec2(x, y));
//使用逻辑尺寸设定 Sprite的位置
this->addChild(m_pTestSprite); //添加到当前场景
代码中提供了两种,把精灵创建在屏幕中间的办法,第一种是利用场景的原点和场景的大小,使用SetPosition()方法,放置到创景中间。
我们也可以使用 getContentSize()方法,返回矩形尺寸,然后将精灵创建在屏幕中间。
对精灵的属性进行设置
sprite02->setScaleX(1.5f); //使精灵的X方向变为1.5倍
sprite->setScale(0.5f);//使精灵的整体尺寸变为0.5倍
sprite02->setNormalizedPosition(Vec2(0.1f,0.8f)); //设置精灵的Normal位置
sprite->setSkewX(100.0f); //X轴斜切
sprite->setSkewY(50.0f); //Y轴斜切
sprite->setAnchorPoint(Vec2(1.0f,1.0f)); //设置精灵的锚点,默认左下角为ZERO 1.0,1.0,为右上角
visible sprite->setVisible(false); //visible 隐藏单个组件
sprite->setRotation(180.0f); //按中心旋转
sprite->setRotationX(50.0f); //按X轴旋转
sprite->setRotationY(50.0f); //按Y轴旋转
sprite->setRotation3D(Vec3(-10.0f,50.0f,60.0f)); //3D旋转
sprite->setColor(Color3B(255,0,0));// Color4B(r,g,b,a); //设置精灵颜色,3B是三个颜色,4B是则包含有透明度。
auto pBlcakSprite = Sprite::create("black.png");
auto pWhiteSprite = Sprite::create("white.png");
this->addChild(pBlcakSprite,20);
this->addChild(pWhiteSprite,20);
pBlcakSprite->setPosition(Vec2(250,150));
pWhiteSprite->setPosition(Vec2(250, 200));
pBlcakSprite->setColor(Color3B(255, 255, 0));
pWhiteSprite->setColor(Color3B(255, 0, 255));
//黑色无法设置颜色,白色可以设置。