본문 바로가기

Cocos2d-x

1. Sprite

- 스프라이트 (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