官术网_书友最值得收藏!

Manipulating sprites

A Sprite is a 2D image that can be animated or transformed by changing its properties, including its rotation, position, scale, color, and so on. After creating a sprite you can obtain access to the variety of properties it has, which can be manipulated.

How to do it...

Rotate

You can change the sprite's rotation to positive or negative degrees.

sprite->setRotation(30.0f);

You can get the rotation value using getRotation method.

float rotation = sprite->getRotation();

The positive value rotates it clockwise, and the negative value rotates it counter clockwise. The default value is zero. The preceding code rotates the sprite 30 degrees clockwise, as shown in the following screenshot:

Rotate

Scale

You can change the sprite's scale. The default value is 1.0f, the original size. The following code will scale to half size.

sprite->setScale(0.5f);

You can also change the width and height separately. The following code will scale to half the width only.

sprite->setScaleX(0.5f);

The following will scale to half the height only.

sprite->setScaleY(0.5f);

The following code will scale that width to double and the height to half.

sprite->setScale(2.0f, 0.5f);
Scale

Skew

You can change the sprite's skew, either by X, Y or uniformly for both X and Y. The default value is zero for both X and Y.

The following code adjusts the X skew by 20.0:

sprite->setSkewX(20.0f);

The following code adjusts the Y skew by 20.0:

sprite->setSkewY(20.0f);
Skew

Color

You can change the sprite's color by passing in a Color3B object. Color3B has an RGB value.

sprite->setColor(Color3b(255, 0, 0));
Color

Opacity

You can change the sprite's opacity. The opacity property is set between a value from 0 to 255.

sprite->setOpacity(100);

The sprite is fully opaque when it is set to 255, and fully transparent when it is set to zero. The default value is always 255.

Opacity

Visibility

You can change the sprite's visibility by passing in a Boolean value. If it is false, then the sprite is invisible; if it is true, then the sprite is visible. The default value is always true.

sprite->setVisible(false);

Tip

If you want to check the sprite's visibility, use the isVisible method rather than the getVisible method. The sprite class does not have the getVisible method.

if (sprite->isVisible()) {
    // visible
} else {
    // invisible
}

How it works...

A Sprite has a lot of properties. You can manipulate a sprite using the setter and getter methods.

RGB color is a 3 byte value from zero to 255. Cocos2d-x provides predefined colors.

Color3B::WHITE
Color3B::YELLOW
Color3B::BLUE
Color3B::GREEN
Color3B::RED
Color3B::MAGENTA
Color3B::BLACK
Color3B::ORANGE
Color3B::GRAY

You can find them by looking at the ccType.h file in Cocos2d-x.

主站蜘蛛池模板: 南城县| 九龙城区| 台东县| 洪雅县| 通江县| 基隆市| 周口市| 乌拉特后旗| 新建县| 鄂托克旗| 深泽县| 临澧县| 岳西县| 西宁市| 北票市| 赣榆县| 花垣县| 巴林左旗| 蒲城县| 汨罗市| 仪征市| 九江市| 中宁县| 鹿邑县| 万源市| 彰化市| 永川市| 名山县| 调兵山市| 长春市| 抚顺市| 新邵县| 洛阳市| 安福县| 茌平县| 闸北区| 富阳市| 辽宁省| 门源| 观塘区| 图木舒克市|