Post

반응형
bool onTouchBegan(Touch* touch, Event* unused_event);

분명히 onTouchBegan 함수를 헤더에 선언했는데

빌드만 하면 에 멤버함수가 없습니다가 떠서 한 20분동안 미치는 줄 알았다.

확인해보니 함수 인자를 삭제하면 아예 에러가 안뜸.

그래서 Touch* touch, Event* unused_event 인자를 설마 다른 cocos::Touch가 아닌 다른 걸로 찾나 싶어서

네임스페이스를 명확하게 적어줬다.

bool onTouchBegan(cocos2d::Touch* touch, cocos2d::Event* unused_event);

그러니까 에러 해결!

근데 내가 요근래 내 블로그로 타고들어오는 검색결과를 유심히 봤는데

cocos2dx에 관련해서 단 하나도 없어 ㅋㅋㅋㅋㅋ큐ㅠㅠㅠ 아이고 슬프다...

아 그리고 스케쥴 관련해서 함수가 아예 삭제되었길래 그냥 코코스3 씀

bool onTouchBegan(Touch* touch, Event* unused_event); 오버로드 된 멤버함수가 없습니다

반응형

Post

반응형

cocos2d-x Text

auto label = Label::createWithTTF("Hello World", "fonts/Marker Felt.ttf", 24, Size(100, 50), TextHAlignment::LEFT);

Size(100, 50)은 폰트가 출력될 상자의 크기라고 생각하면 된다.

100은 너비, 50은 높이다.

만약 너비보다 글자가 더 길다면 다음줄로 글자가 분리된다.

테스트해보니까 띄어쓰기를 기준으로 한단어로 치부해 다음줄로 이동시킨다.

높이도 마찬가지. 높이가 모자라면 글자는 잘리거나 보이지 않는다.

TextHAlignment::LEFT는 글자를 왼쪽 정렬한다.

TextVAlignment는 상하를 정렬한다. 글자가 너무 길어서 잘리는 경우에는

TextVAlignment::TOP일 경우엔 위쪽 텍스트만, TextVAlignment::BOTTOM일 때는 마지막 테스트만 보여준다.

기본값이 TextVAlignment::TOP 인 듯하다.

cocos2d-x Text 폰트, 색, 글자 변경

label->setTextColor(Color4B(255, 150, 150, 255));
label->setString("New Test!");
label->setAnchorPoint(Vec2(0, 0));
label->enableBold();
label->enableShadow(Color4B(255, 250, 250, 255), Size(10, 10), 90);
label->enableOutline(Color4B(255, 0, 0, 255), 10);
//label->disableEffect();
반응형

 

label의 Anchor는 0.5, 0.5이다.

label->enableBold()로 글자를 두껍게 만들 수 있다. 그런데 내가 글자에 색상을 지정한 후 bold효과를 주니

bold효과가 있는 곳은 하얀색으로 표시가 되었다;;; 음 이런것도 고쳐야 하는건가;;;

enableShadow(Color4B(255, 250, 250, 255), Size(10, 10), 90) 의 인수는 그림자의 색상, 그림자의 위치, 마지막은 흐림범위 인것 같은데 테스트해봐도 변동이 없어서 뭔지 모르겠다.

enableOutline(Color4B(255, 0, 0, 255), 10)은 글자 외곽선 효과이다. ttf 폰트만 가능하고 첫번째 인자는 외곽색깔이라고 두번째 인자는 두께이다.

 disableEffect()는 모든 효과를 삭제한다. 볼드나 그림자, 윤곽선 등... 글자 색상은 그대로 놔둔다.

cocos2d-x 한글출력

한글 폰트를 font 폴더에 넣어주고 헤더에 아래 전처리기 추가

#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
#pragma execution_character_set("utf-8")
#endif

 

반응형

Post

반응형

Rect

Rect로 범위를 지정하여 이미지에서 보여주고 싶은 부분만 보여줄 수 있다.

auto sprite = Sprite::create("HelloWorld.png", Rect(0, 0, 100, 150));

0, 0 좌표에서 너비 100, 높이 150만큼만 이미지를 가져온다.

그러면 아래처럼 너비 100에 높이 150인 이미지가 그려진 것을 확인할 수 있다.

그리고 그림으로 확인해보니 좌표계가 왼상단이 0,0이 되고 아래로 그림을 그려준다.

이는 cocos2d-x 좌표계와 다르니 유념할 것.

Scale

이미지의 크기를 키울 수 있다.

sprite->setScale(4.0);
sprite->setScaleX(2.0);
sprite->setScaleY(0.5);

setScale(4.0): 그림을 4배 키운다.
setScaleX(2.0): X축만 2배 키운다.
setScaleY(0.5): Y축만 절반으로 줄인다.

Rect처럼 일정 부분을 보여주는 게 아니라서

그림이 짜부라지거나 치즈처럼 늘어나는 그림이 보여지게 된다.

반응형

Rotation

sprite->setRotation(90);
sprite->setRotationSkewX(10);
sprite->setRotationSkewY(10);

setRotation(90): Z축을 중심으로 90도 회전. 우리가 일반적으로 알고있는 시계방향, 반시계 방향 회전이다.
setRotationSkewX(10): X축을 중심으로 10도 회전. Y축은 회전하지 않고 X축만 회전한다고 생각하면 된다. 
setRotationSkewY(10): Y축을 중심으로 10도 회전. X축은 회전하지 않고 Y축만 회전한다고 생각하면 된다. 

Flipe

sprite->setFlippedX(true);
sprite->setFlippedY(true);

상하좌우를 뒤집는 함수입니다.

setFlippedX(true): X축을 기준으로 좌우를 뒤집습니다. 
setFlippedY(true): Y축을 기준으로 상하로 뒤집습니다.

Opacity

sprite->setOpacity(40);

이미지의 불투명도를 조절한다. 0~255까지 값이 가능하다.

Visible

sprite->setVisible(false);

  setVisible(false): 화면에 보일 것 인지 보이지 않을 것인지 true, false로 셋팅한다.

Color

sprite->setColor(Color3B(255, 150, 150));

setColor로 R,G,B값을 0~255까지 줘서 이미지에 색을 입힐 수 있다.

반응형
▲ top