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 + -

반응형

Post

반응형
#include <iostream>
#include <string>
#include <fstream>

using namespace std;

int main()
{
	string str_buf;
	fstream fs;

	fs.open("test.csv", ios::in);

	while (!fs.eof()) {
		std::getline(fs, str_buf, '\n');
		printf("%s", str_buf.c_str());
	}
	fs.close();

	return 0;
}

C++ csv 파일 읽기 예제

string.h는 문자열에 관련된 함수를 사용하는 거고 getline을 사용하려면 string 헤더를포함해야한다는 걸 명심할 것

string을 printf로 출력하려면 c_str()함수 호출.

std::getline(fs, str_buf, '\n'): getline은 한줄 씩 읽는 함수. 세번째 인자는 어느 문자열을 만나면 여기까지 읽겠다는 뜻. 즉 \n 이므로 한줄을 읽게 된다. 세번째 인자를 잘못넣어주면 그냥 텍스트 파일을 통째로 읽게 된다.

너무 오랜만에 해서 다 까먹었다...

반응형

Post

반응형

cmd켜고 project에서 proj.android로 이동한다.

거기서 안드로이드 빌드 명령어 수행

cocos compile test- p android

cocos compile baseproject -p android

baseproject 자리에 프로젝트 이름 넣을 것

bin 폴더에 간다. 그 안에 baseproject-debug.apk apk 존재

project\projectname\bin\debug\android

그런데 한번 빌드한 프로젝트를 다시 빌드하려고 하니 다음과 같은 에러가 나왔다.

The target platform is not specified.
You can specify a target platform with '-p' or '--platform'.
Available platforms : ['win32', 'android']

cocos compile test- p android

라고 했는데 왜 대상 플랫폼이 지정되지 않았다고 뜨지?

andorid target list 로 안드로이드 버전 확인하고(28~34)

되는 안드로이드 버전 cocos compile test- p android --ap 28

를 해봤지만 안됨.

https://stackoverflow.com/questions/23551144/cocos2d-x-doesnt-find-android-platform

 

cocos2d-X doesn't find android platform

I'm using cocos2d-X v3 and I created a new cocos2d-X project following this tutorial. But when I run cocos run -s ~/MyCompany/MyGame -p android I get this error: building apk Android platform ...

stackoverflow.com

ANT 경로를 다시 삭제하기 보다  %ANDROID_SDK%\tools 경로를 추가하는게 좋아보이는데

어떻게 해야하는지 모르겠다.

아니... 그냥 내가 명령어를 막 갖다붙여서 생긴 일이었다...프로젝트 이름도 생각안하고

cocos compile baseproject -p android

baseproject 는 프로젝트 이름...

그러면 apk 빌드가 잘된다!

반응형

Post

반응형

2024년 8월 5일에 코스닥과 코스피가 미국 증시의 영향을 받아서 서킷브레이커가 발동 되었다.
하루에 200 이상 빠지게 되다니 정말 급락장이 아닐 수 없다.
또한 엔화는 미국 증시의 영향으로 갑작스레 급등 했다.
이달에는 엔화와 주식에 대해서 한번 되돌아 보려고 한다.
엔화는 사실 지금까지 살 물건은 다 샀다 .....
나머지는 써도 되고 안 써도 되고 가만히 물건들이라서 그닥 아쉬움은 없다.
지금 사기보다 파격적으로 새일을 할때 사는 게 훨씬 이득이기도 하고.
아무튼 엔화가 급등 하기 전.
엔화는 8.5 엔까지 찍었다. 1000엔이 우리돈 8500원이었다.
이 때만 하더라도 엔화는 다시 일어설 수 없을 거라는 전문가들의 경고가 이어졌다. 너도 나도 지금 엔화에 들어가면 위험하다고 모두가 말렸다.
그런 뉴스를 들으면서도 한편으로는 원래 위험하다고 할 때가 제일 바닥이고 지금 들어가야 할 때 아닌가라고 생각했다.
하지만 나는 들어가지 않았다.
앞으로 엔화가 어떻게 될지도 모르는데 굳이?
엔화로 이미 사고 싶은 거 다 샀는데 굳이?
게다가 나는 한번 엔화투자를 했다가 손해를 본적이 있었다.
손해라고 해 봤자 정말 미미 하게 0.062?? 그 정도지만 손에 땀을 쥐게 하는 사람 미치게 하는 경험이었다.
난 880 엔에 들어갔는데 거기서 더 떨어지는 거다 ㅋㅋㅋㅋ
어떡게 880 엔에서 더 떨어질수가 있지 ㅋㅋㅋ
지금 보면 850 엔으로 가고 그걸 견뎌 써야 돈을 버는 거였지만....
그 때의 기억으로 나는 다시는 달러나 엔화 투자를 하지 않겠다고 결심했다.
주식도 마찬가지.
엔화 달러 주식.... 전부 원리는 똑같다.
그냥 홀짝 게임이다.
내가 내가 산거에서 올라가는냐 떨어지느냐.
그리고 개인은 절대로 미래를 예측할 수 없다.
지금도 엔화가 급등 하고 있지만 또 어떻게 될지 모른다.
말 그대로 사람의 운에 맡기는 것....
그리고 난 그걸 감당할 멘탈이 안 된다.
그래서 엔화 폭등 장 또한 그냥 지켜 보려고 한다.
내 소중한 피 같은 돈을 운에 맡길 수 없기에.
또한가지.
이번에 티몬 사태에서 내 철칙중에 하나를 더 추가하려고 한다.
나는 채권이랑 예금을 동급으로 봤는데..
아니 오히려 채권이 더 안전하다고 봤는데 예금처럼 돈을 바로 뺄 수 있는 게 아니면 그냥 예금이 더 안전한 것 같다.
지금 나는 국채 위주로 하는 포트폴리오를 구성 했지만 이게 나처럼 똑같은 곳에 투자한 사람이 별로 없으면은 구제가 안되고 티몬처럼 여러 사람이 물려 있으면 구제가 되고 좀 대한민국이 이상한 기준으로 돌아가는 것 같다.
그래서 원래 채권 80%에다 예금은 20%에서 10%만두고 있었는데....
아예 예금 비율을 확 높일 려고 한다.
아.... 대한민국에서 잘 살고 싶다.

2024년 서킷브레이크 발동! 무서운 폭락장과 나의 생각...

반응형
▲ top