CPP

Category
아이템: CPP(32)
포스트 갯수32

지형 충돌과 이동에 관한 고찰

By Lim's Studio | 2013년 1월 16일 | 
지형 충돌과 이동에 관한 고찰
오늘은 지형 충돌에 대해 생각해 봤다. 처음 생각난 것은 모두 사각형으로 비교해서 충돌하려고 했는데, 그렇게 하면 경사면같은 물체는 이동할 수 없게돼서 포기했다. 또 그 경사면들만 따로 만들어 주자니, 개수에 너무 제한적이었다. 두 번째로 떠오른 것은 사격형과 선분끼리 충돌시키는 것이었다. 캐릭터들은 어차피 사각형 마스크로 비교하니까 그렇게 하면 될 것 같았다. 그래서 캐릭터 마스크 에디터 만들 때 처럼 충돌 선분을 직접 그려서 숫자로 뽑으려고 했는데 이건 알고리즘 짜기가 여간 복잡한게 아니었다. 점끼리 연결상태 파악하기가 쉽질 않았다. 그래서 맵 에디터를 만들면서 그 위에 직접 선분을 그을 수 있게 만들어 버리도록 생각을 해보니 그렇게 하면 될 듯 싶어서 생각은 그 쯤에서 마쳤다.

벡터로 위치이동

By Lim's Studio | 2013년 1월 16일 | 
보통 간단한 이동을 구현한다면, 좌로 이동할 때 x-=1; 아래로 이동할 때 y+=1;처럼 코딩하기 마련이다. 그러니까, if(GetAsyncKeyState(VK_LEFT))x-=1; else if(GetAsyncKeyState(VK_RIGHT))x+=1; if(GetAsyncKeyState(VK_UP))y-=1; else if(GetAsyncKeyState(VK_DOWN))y+=1; 이런식으로 말이다. 그런데 저 말대로 한다면 상하좌우 각각의 4방향 이동은 문제 없겠지만, 4가지 대각선 방향을 이동할 때 약간의 문제가 생긴다. 상하좌우의 경우는 각각 1만큼 움직일 테지만, 대각선은 두 키의 명령이 같이 이행됨에 따라 결과적으로 root 2만큼 움직여 버리는 것이다. 이를

D3D로 2D출력

By Lim's Studio | 2013년 1월 16일 | 
D3D로 2D출력
ID3DXSprite를 이용해서 이미지 출력하는 쪽으로 하려고 했는데, 레이어 관리도 쉬울 것 같고 3D공부도 할겸 버텍스 4개찍고 그 판자때기 위에다 이미지 출력하는 방식을 선택했다. <텍스쳐 크기에 따른 출력 결과의 차이(실제 이미지 안에 담겨진 캐릭터의 크기는 같으며, 좌측이 정상 크기이다)> 그런데 WDDM드라이버라 그런지, 원래 그런건지 위 그림처럼 텍스쳐가 2의 승수이며, 정사각형일때만 멀쩡하게 출력되고 그렇지 않으면 2의 승수에 가장 가까운 값쪽으로 텍스쳐가 찌그러져버렸다. <텍셀좌표의 위치에 따른 출력 결과> 그리고 또 한가지 주의할 점이 있었다. 3D는 2D와 다르게 실제 이미지 (0, 0)~(1, 1)까지의 영역을 텍스쳐의 원점(

프로젝트 시작

By Lim's Studio | 2013년 1월 16일 | 
매번 무슨 프로그램 만든다고 프로젝트 시작한 다음 1년정도 지나면 그만두고 그랬었는데, 이번건 진짜 끈질기게 해서 완성시켜봐야겠다. 장르는 RPG고 금산이가 그래픽쪽 맡고있으니 그나마 덜 바빠졌다. 근데 얘 3월에 군대가니까 시간남으면 나도 그래픽작업 같이 해야될 것 같다. 바쁘구나.ㅠ