프로그래밍/공부관련 썸네일형 리스트형 DirectX 예제 XYZ축 라인그리기 및 카메라(뷰행렬)에 관한 예제 소스는 간단하고 필요한 구현부분만 작성되어있기에 이부분을 따라 구현하는데에는 어렵지 않을것이다. 뷰행렬을 적용할때 D3DXMatrixLookAtLH함수를 작성했었다. 구체적인 방법은 배제한체 이 함수에 의존했다. 그런데 위의 예제에서는 그렇지는 않다. 가장 중요한 부분의 함수 위의 설명인데, 이것으로 어느정도 이해가 가는듯 하였고, //------------------------------------------------------------------------------ // Name : updateViewMatrix() // Desc : Builds a view matrix suitable for Direct3D. // // Here's what the final matrix should look .. 더보기 [MFC]다이얼로그바 띄우기 http://blog.naver.com/seiyouchyan/60095718871 이 블로그에 들어가면 설명이 나온다. 책에는 다이얼로그바가 없어서 낑낑거리며 검색했는데 그나마 가장 쉽게 설명한것이라본다. 제공되더라 CDialogBar라는 클래스 다만 클래스를 추가하고자할때 CDialog클래스가 기본으로되어서 따로 부모를 CDialogBar로 수정해주어야한다. 그 이후에는 잘되드라 더보기 [MFC] 다이얼로그바 내부에 있는 버튼활성화 이 소스에는 다이얼로그바적용과 버튼활성화가 담겨있다. 버튼활성화는 다이얼로그바를 상속받은 임의의클래스를 보면 알수있다. 다이얼로그바는 CControlBar를 상속받아서 버튼의 메세지를 받지 못하여 버튼을 달면 비활성화 되어 있다. 따라서 몇가지를 수동으로 기입해 주어야 한다. 다이얼로그바 헤더파일 #if !defined(AFX_CTRLPALDLG_H__A734BECF_5B37_4011_A6DB_46AB92DA69C2__INCLUDED_) #define AFX_CTRLPALDLG_H__A734BECF_5B37_4011_A6DB_46AB92DA69C2__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // CtrlPalDlg.h : .. 더보기 shared_ptr auto_ptr은 new와 delete를 한쌍으로 하는 방식을 떠나서 auto_ptr로 메모리를 할당받고 알아서 자동으로 delete를 호출해준다. 하지만 단점은 복사를 할 수 없다는 것... 그래서 shared_ptr을 많이 쓴다고 한다. 이놈은 복사가 가능하다. 더보기 이제 데이터 멤버는 private , protected를 적용하자. 이것만은 잊지 말자 ! * 데이터 멤버는 private 멤버로 선언합시다. 이를 통해 클래스 제작자는 문법적으로 일관성 있는 데이터 접근 통로를 제공할 수 있고, 필요에 따라서는 세밀한 접근 제어도 가능하며, 클래스의 불변속성을 강화할 수 있을 뿐 아니라, 내부 구현의 융통성도 발휘할 수 있습니다. * protected 는 public 보다 더 많이 '보호' 받고 있는 것이 절대로 아닙니다. 더보기 about STL - 시퀸스 컨테이너, 연관 컨테이너 간단정의 About STL을 보시는 분은 대부분 아직 STL을 잘 모르는 분들이라고 생각합니다. 제가 일하고 있는 게임업계는 주력 언어가 C++입니다. 그래서 취업 사이트에 올라온 프로그래머 채용 공고를 보면 필수 조건에 거의 대부분이 C++와 STL 사용 가능이 들어가 있습니다. 게임 업계뿐 아니라 C++을 사용하여 프로그래밍하는 곳이라면 대부분 C++과 STL을 사용하여 프로그램을 만들 수 있는 실력을 필요로 합니다. C++ 언어를 배우고 사용하는 프로그래머라면 STL을 배우면 좋고, 특히 게임 프로그래머가 되실 분들은 STL을 꼭 사용할 줄 알아야 됩니다. 작년 여름부터 About STL을 쓰기 시작하여 지금은 2009년이 되었습니다. About STL 집필 계획으로는 이제 반 정도 도달한 것 같습니다. 앞.. 더보기 스레드 클래스 함수 1. 클래스 헤더안에 static으로 선언 class TestDlg { public : static DWORD WINAPI ThreadHandler(LPVOID lpParam); // CreateThread static unsigned int __stdcall ThreadHandler(void *pParam); // _beginthreadex } 2. 클래서 내용안에 정의 // CreateThread DWORD WINAPI TestDlg::ThreadHandler(LPVOID lpParam) { TestDlg *Dlg = (TestDlg *)lpParam; while(TRUE) { ... } return 0; } // _beginthreadex() unsigned int __stdcall TestDlg:.. 더보기 11월 23일 플로렌스2 - 개발 1 기존 플로렌스2 문제점 - 구체적인 기획X , 구조확실성이 없어서 새롭게 개선 =================================================================== 1. 프레임워크 다시 설정 현재까지 예상 진행경로는 main에서 CGameApp클래스형에서 셋업부를 읽는다. 셋업부에서는 CSettingInit로 하여금 대화상자를 띄워서 사용자에게 어떤 해상도, 어떤 드라이버로 할 것인지 묻는다.(이 과정에서 대화상자는 최초 NO비디오카드형태의 드라이버로 디바이스를 생성했었다) 대화상자를 설정후 OK버튼을 누를시에 자체적으로 CsettingInit를 탈피하고 셋업부분에서 다시 디바이스셋업을 변형한다. 결과물: 문제발생 및 해결방법 모색 : 애초 가능할 줄알았던, 디바이스변.. 더보기 11월22일 플로렌스2 - 기획 1 간단기획 1. 게임소개 1-1. '플로렌스2' 어떤게임? TD(타워 디펜스)형 캐주얼게임이다. 게임에서 게이머는 자신의 주거지에 침범하는 몬스터로부터 지켜내기위해 각각의 트랩, 무기등을 배치해 몬스터를 격파하고 영토를 보호하는데에 목적을 두고 있다. 1-2. '플로렌스2'는 어떻게 하는 게임인가? 메인화면에서 바로 게임화면으로 입장, 쉽게 게임을 시작함으로써 월드상에 돌아다니는 캐릭터는 자신의 주거지의 논밭으로부터 자동적으로 자원양이 올라간다. 자원에 따라서 저비용~고비용까지 방어형 타워를 짓는다. 주거지제거 목적 몬스터 vs 플레이어의 방어타워 이 게임은 '좀비 vs 식물' , 워크래프트3 유즈맵등을 오마주로하여금 기획하였다. 1-3. '플로렌스2' 재미요소? 자신만의 방어형 타워를 만들고, 방어타워가.. 더보기 SetSamplerState 텍스쳐는 스크린 좌표에서 삼각형에 입혀 진다. 일반적으로 텍스쳐 삼각형과 스크린 삼각형의 크기는 서로 다른 경우가 많으며 이 때 텍스쳐 삼각형이 스크린 삼각형보다 작은 경우 텍스쳐 삼각형을 확대하여 크기를 맞추고, 텍스쳐 삼각형이 더 큰경우에는 텍스쳐 삼각형을 축소한다. 이 두가지 경우 모두 얼마간의 왜곡이 발생하는데, 필터링을 통해 이러한 왜곡현상을 줄이고, 부드럽게 이미지를 만들어 내기 위해 SetSamplerState를 이용 할 수 있다. ex ) SetSamplerState(0, // 0 번 텍스쳐 스테이지 D3DSAMP_MAGFILTER, // 확대 필터 사용 D3DTEXF_LINEAR // 선형 필터링 사용 ) ARG1의 텍스쳐 스테이지는 0번 부터 7번까지 총 8개 이용이 가능하다. 필터링 .. 더보기 이전 1 2 3 4 5 6 7 다음