스프라이트 컨트롤하기
스프라이트를 생성하고 속성을 수정하여 컨트롤할수 있습니다.
스프라이트 생성하기:
C++
auto mySprite = Sprite::create("mysprite.png");
피벗이 스프라이트가 좌표계산할때 기준점이 된다고 말했었습니다.
이 피벗은 스케일,회전,기울이기 등 선형변환에 영향을 주고 색상과 투명도엔 영향을 주지 않습니다.
피벗의 원점(0,0)은 좌표계의 좌측하단입니다.
당신이 피벗값을 설정하려면 이것을 확실하게 알고 있어야 합니다.
피벗의 디폴드값은(0.5,0.5)입니다(스프라이트의 정중앙값).
피벗 설정하기.
C++
// DEFAULT anchor point for all Sprites
mySprite->setAnchorPoint(0.5, 0.5);
// bottom left
mySprite->setAnchorPoint(0, 0);
// top left
mySprite->setAnchorPoint(0, 1);
// bottom right
mySprite->setAnchorPoint(1, 0);
// top right
mySprite->setAnchorPoint(1, 1);
아래그림을 보고 피벗이 스프라이트 위치에 대한 감을 잡으세요.빨간점은 옆에있는 스프라이트의 피벗입니다.
위치
스프라이트 위치는 피벗에 영향을 받습니다.한번 보십시오.피벗의 위치에 따라서 그림의 위치가 변경됩니다.
다 똑같은 좌표인데 말이죠.SetPosition()을 사용하지 않았는데도 위치의 변화가 일어나는걸 명심하십시오.
우리가 스프라이트의 위치를 설정할때 보통 setPosition()메서드를 사용합니다.
정확한 위치에 원하는 그림을 넣기위해선 피벗을 어떻게 사용할지 생각해봐야 합니다.
C++
// position a sprite to a specific position of x = 100, y = 200.
mySprite->setPosition(Vec2(100, 200));
회전
setRotation()메서드를 사용하고 파라미터로 각도값을 주면 회전합니다.
음수값을 주게되면 역방향으로 회전하게 됩니다.디폴트 회전값은 0.0입니다.
C++
// rotate sprite by +20 degrees
mySprite->setRotation(20.0f);
// rotate sprite by -20 degrees
mySprite->setRotation(-20.0f);
// rotate sprite by +60 degrees
mySprite->setRotation(60.0f);
// rotate sprite by -60 degrees
mySprite->setRotation(-60.0f);
스케일
setScale()메서드를 이용하여 축소확대를 할수있습니다.
수평스케일,수직스케일,전체적 스케일을 사용할수 있습니다.
디폴트 로 수평과 수직의 스케일값은 1.0입니다.
C++
// increases X and Y size by 2.0 uniformly
mySprite->setScale(2.0);
// increases just X scale by 2.0
mySprite->setScaleX(2.0);
// increases just Y scale by 2.0
mySprite->setScaleY(2.0);
기울기
setSkewX()를 통해서 기울기를 조절할수 있습니다.
수평기울기를 설정할수 있고 수직기울기를 설정할수 있습니다
혹은 수직수평 동시에 기울기를 할수 있습니다.
디폴트값으로 수평수직모두 0.0입니다.
C++
// adjusts the X skew by 20.0
mySprite->setSkewX(20.0f);
// adjusts the Y skew by 20.0
mySprite->setSkewY(20.0f);
색상
setColor()로 색상값을 설정할수 있습니다
파라미터로 RGB값을 사용하고 Color3B구조체를 사용하면 됩니다.
RGB는 0~255값입니다.
Red,Green,Blue세개값의 농도이며 수가 높을수록 색상이 진해집니다.
(255,255,255)는 하얀색이고 당신이 RGB값을 지정하고 싶지않다면 Cocos2d-x가 제공하는 값을 사용해도 됩니다.예를들면 Color3B::White 이런식으로말이죠.
C++
// set the color by passing in a pre-defined Color3B object.
mySprite->setColor(Color3B::WHITE);
// Set the color by passing in a Color3B object.
mySprite->setColor(Color3B(255, 255, 255)); // Same as Color3B::WHITE
투명도
스프라이트의 투명도는 setOpacity()메서드를 사용하고 파라미터는 0~255입니다.
수가 클수록 투명도가 낮습니다.
255는 완전불투명,0은 완전 투명입니다.
C++
// Set the opacity to 30, which makes this sprite 11.7% opaque.
// (30 divided by 256 equals 0.1171875...)
mySprite->setOpacity(30);
출처: <http://cocos2d-x.org/docs/cocos2d-x/zh/sprites/manipulation.html>
'Cocos2d-x v3.17 > 기본기능' 카테고리의 다른 글
[Cocos2d-x 기본기능] 이동,회전,스케일 (0) | 2018.08.11 |
---|---|
[Cocos2d-x 기본기능]Action 소개 및 By 와 To 의 구별 (0) | 2018.08.11 |
[Cocos2d-x 기본기능]다각형 스프라이트 Polygon Sprite (0) | 2018.08.11 |
[Cocos2d-x 기본기능]SpriteCache사용하기 (0) | 2018.08.11 |
[Cocos2d-x 기본기능]Sprite 및 SpriteSheet (0) | 2018.08.11 |