Post

Cocos2d NULL 아니라 nullptr

1. cocos2dx null 체크

define 되어있는걸로 봐서는 NULL 0 이라서

이건 쓰면 안될 거 같은데;;; 하고 있다가 찾아보니

C++11부터는 nullptr 쓰면 된다고 적혀 있었음 ㅇㅇ

그래서 nullprt을 사용했다.

2. cocos2dx 한글 폰트 적용

1) visual studio 출력단에서 글자가 깨지는 경우.

이 경우에는 헤더, cpp 파일 인코딩이 다른 경우라 다른이름으로 저장-인코딩해서 저장- 유니코드 utf8로 변경해주면된다.

2) cocos2d System font를 사용하고 싶은 경우

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

선언해두고 

createWithSystemFont 함수로 읽을 한글 폰트를 갖다놓는다.

text = Label::createWithSystemFont("한글폰트야 나와라!!!!", "fontname.ttf", 50);

 근데 생각해보니까...따로 fonts 폴더에 폰트 넣은 뒤에

폴더 경로를 지정을 안해줬는데 잘 읽히네?

왜죠?

난관은 내가 원하는 위치에 텍스트를 출력하는 건데

이게 생각보다 잘 안된다. 어느 디바이스든 고르게 잘 출력하고 싶은데 안돼...

좌표계 헷갈려 ㅠㅠㅠ살려줘ㅠㅠㅠㅠㅠ

Post

Cocos2dx 소멸자 CCLog 에러

Cocos2dx 소멸자 CCLog 에러

이해할 수 없는 에러가 떴다...

왜 소멸자를 찾지 못하죠?

오류	LNK2019	"void __cdecl cocos2d::CCLog(char const *,...)"
(?CCLog@cocos2d@@YAXPBDZZ)"public: virtual __thiscall HelloWorld::~HelloWorld(void)"
(??1HelloWorld@@UAE@XZ) 함수에서 참조되는 확인할 수 없는 외부 기호
vg	H:\CocosProject\vg\HelloWorldScene.obj	1

근데 내가 자세히 안봐서...

소멸자를 못찾은게 아니라 CCLog 함수를 못찾은 것...

CCLOG 헤더 파일 CCPlatformMacros.h 를 include 하거나

cocos2d.h 헤더추가

Post

static Utile& getIncetance() {
		static Utiles s;
		return s;
}

싱글톤 C++ 엑세스 할 수 없습니다

라는 에러가 자꾸떴다. 난 코드대로 했는데 왜 그러지 했는데

알고보니까 resturn 을 레퍼런스로 받는게 아니고 그냥 변수로 받고 있었다.

결국 static이고 생성자를 생성못하게 private으로 했는데

변수를 하나 더 만들려고 하니 에러가 난것.

Utile  에다가 Utile& 레퍼런스를 붙여줬다.

잘 보고 하자...(정신차려!!!)

 

Post

// 현재 위치 구하기
TCHAR filePath[_MAX_PATH]; // 현재 디렉토리
GetCurrentDirectory(_MAX_PATH, filePath);

string a = TCHARtoString(filePath);

printf("현재 디렉토리:%s", a.c_str());
			
const std::string TCHARtoString(const TCHAR* tcharStr) {
	int len = wcslen((wchar_t*)tcharStr);

	char resultStr[200]; //경로가 길므로 적당한 사이즈를 지정해준다
	size_t tcnt;

	wcstombs_s(&tcnt, resultStr, sizeof(resultStr), (wchar_t*)tcharStr, 2 * len + 1);

	return resultStr;
}

wcstombs_s 함수를 사용한다.

GetCurrentDirectory를 함수에서 TCHAR 형으로 현재 디렉토리 주소를 받아와서

어쩔 수 없이 TCHAR to String을 해야 했다.

근데 잘 안보이고ㅠㅠㅠ

고생고생하다가 겨우 찾았다ㅠㅠ

wcstombs_s 함수의 인자 출처:

https://learn.microsoft.com/ko-kr/cpp/c-runtime-library/reference/wcstombs-s-wcstombs-s-l?view=msvc-170

 

wcstombs_s, _wcstombs_s_l

자세한 정보: wcstombs_s, _wcstombs_s_l

learn.microsoft.com

 

 

Post

1. getVisibleOrigin 에서 가져오는 값이 뭘까?

auto visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();

출력해보니 Director::getInstance()->getVisibleSize();는 내가 지정한 해상도이다.

getVisibleOrigin()은 뭔지 잘 모르겠다. 코드보니 scale 사용하고 어쩌구 있는데 잘 모르겠으니

패스당...(할게 너무 많아ㅠㅠ)

visibleSize.width: 400.000000 height: 800.000000 origin x: 0.000000 y: 0.000000

Post

	map<int, GameObject*> gameObjects;
    
    // 동적 할당 해제
	for (map<int, GameObject*>::iterator it = gameObjects.begin(); it!= gameObjects.end(); it++) {
		delete it->second;
	}

	gameObjects.clear();

c++ stl Map 동적할당 해제 예제 
이터레이터에서 두번째 인자를 해제 해주고 map전체 clear

Post

필요한 거 그때그때 추가하자

헤더, cpp 이동: ctrl+k, o

이전 커서 위치로 이동 ctrl + -

▲ top