프로그래밍2013. 2. 14. 23:22

KGCA 게임 아카데미 23기 졸업프로젝트

팀명 : Dream Catcher

게임명 : Assault Arms



GumUITool.zip

Gum3DUI사용설명서.docx


Posted by 버블껌
프로그래밍2012. 12. 30. 20:27


프로젝트 중에 내가 맡은 UI의 랜더 부분 때문에 게임의 프레임이 튀는 문제가 생겼다.

UI의 프레임에서 화면크기만한 텍스쳐에 모든 오브젝트를 미리 그려놓고 UI랜더는 그 텍스쳐 한장만 화면에 그리는 비교적 단순한 로직이고 UI랜더를 포함함 모든 오브젝트는 최상위 부모 클래스의 같은 함수로 랜더되기 때문에 UI랜더에서 문제가 생긴다면 UI프레임에서도 문제가 생겨야 하지만 UI프레임에서는 문제가 생기지 않아서 이 문제의 원인이 상상조차 안됐었는데 의외로 간단한 부분이 문제였다.


다른 오브젝트와 UI랜더의 유일한 차이점은 UI랜더에서만 노말맵을 사용하지 않는 다는 것인데 기본 노말맵은 셋팅되어있고 노말맵을 NULL로 셋팅하려고 하면 예외처리로 원래 텍스쳐를 그대로 들고 있기 때문에 의도치 않게 노말맵을 셰이더에 보내주면서 셰이더에는 노말맵 텍스쳐를 선언하지 않은게 원인이었다.


ps. 컴퓨터는 거짓말을 하지 않는다.

컴퓨터가 거짓말을 한다면 그건 사람이 시켰기 때문이다.

그게 나야~~ 둠빠 둠빠 두비두밥

Posted by 버블껌
프로그래밍2012. 12. 2. 17:42




wofstream을 이용해서 파일에 저장하다가 한글이 출력되지 않는 문제가 있어서 아래와 같이 로케일을 한글로 설정해 주었다.


std::wofstream fStream(_strFileName);

fStream.imbue(std::locale("kor"));


한글 출력은 잘 되는데 숫자를 출력할때 999를 넘어가면 1,000 이런식으로 콤마로 분리해줘서 다시 읽어오는 부분에서 정상적으로 읽어오지 못하는 문제가 생겼다.


std::wifstream fStream(_strFileName);

fStream.imbue(std::locale("kor"));


읽어오는 부분에서도 로케일을 한글로 설정해서 해결됐다.OTL


ps. 만약 숫자를 콤마로 구분해서 저장되는걸 막고 싶다면

std::wofstream fStream(_strFileName);

fStream.imbue(std::locale("kor", std::locale::ctype));

이렇게 하면 된다.

Posted by 버블껌