- 스프라이트 (Sprite)
2D이미지는 전부 스프라이트 취급을 받는다.
이미지를 사용하기 위해 꼭 필요한 기초 Sprite 명령어.
모든 코드들은 init()안에 작성이 된다.
USING_NS_CC;
// 매크로 'using namespace cocos2d'
cocos2d::Scene* 헤더명::createScene()
{
return 헤더명::create();
}
bool 헤더명::init()
{
if(!Scene::init()) return false;
// Scene이 초기화에 실패하면 false를 반환.
// 상위개체인 Scene의 init이 실패하면 하위개체인 이 init도 당연히 실패하기 때문.
< 여기서 코드를 작성 >
return true;
}
Sprite 선언 및 위치 조정
// create("파일경로") => 파일경로엔 상위폴더(Resources) 이름의 명시 필요없음.
// Resource파일안에 있다면 Sprite::create("파일명");
cocos2d::Sprite* Sprite1 = Sprite::create("상위폴더/파일명");
// auto로 간단히 선언 가능하다.
auto Sprite2 = Sprite::create("상위폴더/상위폴더/파일명");
// setPosition : 이미지(또는 객체)의 좌표 설정
// setPosition을 설정해두지 않는다면 Vec2(0, 0)으로 설정된다.
// Sprite의 축은 좌표하단으로 설정됨.
Sprite1->setPosition(Vec2());
Sprite2->setPosition(Vec2(640, 360));
Sprite 명령어
1. setAnchorPoint
-객체의 기준 축을 설정. 축은 0.0f ~ 1.0f 까지의 값을 받는다.
Vec2(0, 0) : Sprite의 좌측하단
Vec2(0.5, 0.5) : Sprite의 중심
Vec2(1, 1) : Sprite의 우측상단.
// Vec2()안에 아무것도 입력하지 않으면 (0.5, 0.5)로 고정. 기준은 기본적으로 우측상단을 기준.
Sprite1->setAnchorPoint(Vec2(1.0f, 0.0f));
2. setTextureRect
-스프라이트의 특정 부분을 잘라서 출력
// Rect의 좌표는 Sprite 기준의 좌표. 좌측상단이 기준.
Sprite1->setTextureRect(Rect(0, 0, 120, 120));
// = Sprite1의 좌측 상단에서 Rect(0, 0, 120, 120)만큼의 이미지만 잘라서 사용한다.
// 이 Rect의 width, height는 아래쪽 방향이다.(UI 좌표계)
// width, height가 음수라면 Rect의 생성은 위쪽 방향.
3. setColor
-스프라이트의 컬러 설정
// Color3B(0~255, 0~255, 0~255)으로 세세한 RGB값 설정 가능하다.
// Color3B::WHITE,BLUE,RED,BLACK,GRAY 등도 제공되고 있다.
Sprite1->setColor(Color3B::BLUE);
4. setScale
-이미지의 비율(크기)를 설정
// setScale(2.0f)는 가로세로 동일한 비율로 2배.
// setScale(2.0f, 3.0f)는 가로 2배, 세로 3배.
Sprite1->setScale(2.0f);
5. setOpacity
-투명도 조절(0 ~ 255)
Sprite1->setOpacity(128);
6. setLocalZOrder
-객체의 Z축을 설정
// setLocalZOrder()안의 인수가 낮을 수록 뒤로 가고 높을 수록 앞으로 이동
Sprite1->setLocalZOrder(1);
Sprite2->setLocalZOrder(2);
두 스프라이트가 겹치는 경우에, Sprite2의 이미지가 Sprite1의 이미지보다 위에 노출된다.
7. setRotation
-이미지 회전
Sprite1->setRotation(270.0f);
// Sprite1의 이미지를 우측 방향으로 270.0f만큼 회전시킨다.
Sprite1->setRotation(-180.0f);
// Sprite1의 이미지를 좌측 방향으로 180.0f만큼 회전시킨다.
8. setFlipped
-이미지 상하좌우 반전
Sprite1->setFlippedX(true);
// Sprite1의 X축 반전을 활성화.
Sprite1->setFlippedY(false);
// Sprite1의 Y축 반전을 비활성화
'Cocos2d-x' 카테고리의 다른 글
| 6. 애니메이션(Animation) (0) | 2021.08.28 |
|---|---|
| 5. 스케줄(schedule) (0) | 2021.08.18 |
| 4. 액션(Action) (0) | 2021.08.17 |
| 3. Menu (0) | 2021.08.07 |
| 2. Label, Font (0) | 2021.08.06 |