쥬신게임아카데미
-
쓰레드 관련쥬신게임아카데미/C++ 2016. 3. 29. 02:48
쓰레드 생성시 전달되는 함수는DWORD WINAPI ThreadProc(LPVOID lpParam)이런식으로 반환값은 DWORD, 매개변수는 LPVOID 인자값..WINAPI 호출규약형식으로 지정되어야 한다..그리고 그 함수내 지역변수는 각 쓰레드에서 공유되지 않음..스택영역이니까.. 쓰레드 종료는 항상1. return 0이 최고다. (이건 하나씩 리턴되면서 종료...순차적으로 다해야함 아래랑 비교됨)2. ExitThread함수 호출방식(특정 위치에서 쓰레드의 실행을 종료시키고자 하는 경우 즉, 여기서 모든쓰레드를 종결합니다라는 의미그러나 ...순차적으로 호출된 함수내에 객체가 있다면..소멸자가 호출이 안되는 경우가있어서 메모리 누수 발생된다..그래서 return 0 호출이 더 좋은..)(매개변수로 종료..
-
GPG gem 1일차쥬신게임아카데미 2016. 3. 7. 18:46
1. 하드 코딩을 없애라.. 어떤 것이들 바뀔 수 있다고 가정해야한다. 게임이 시동될 때마다 또는 필요할 때마다 텍스트 파일등를 읽어서 처리할 수 있또록 시스템을 만들어야한다.. 무기의 종류가 4가지엿다가 100가지로 늘어나도 텍스트 파일만 적당히 수정하면 되니까.. 2. 데이터 중복 피해라 서로 다른 두 지점에서 동일한 행동이 일어나야 하는 경우 코드는 하나만 존재해야한다. 데이터도 여러곳에서 쓰인다면 전역적으로 만드는것이다.. 헝가리안 dw == DWORD, w == WORD s_ == 정적변수 static C로 시작하는 클래스 구체 클래스(특정한 용도와 구현을 가진 클래스 I로 시작하는 것은 인터페이스 클래스(다른 클래스들이 상속받을 기반 클래스로 쓰임) 클래스 설계 변수 초기화를 개별적인 함수에서..
-
1차 시연회 정리쥬신게임아카데미/자기반성 2016. 3. 5. 21:44
WINAPI 시연회 준비간 잘못된 점.1. 큰틀에서의 문제게임상에서 각 역활에 대한 큰 틀에서의 분석이 매우 미흡..마우스를 사용하는 게임 특성상 가운데 메인 UI에 각 상태를 나타내는 방식이 필요했고..UI메니저를 만들어서 마우스가 각 객체를 선택했을때 필요한 정보(구조체)를 key메니져에서 받아 UI메니져에게 전달하는 식으로 생각했음..덕분에 key메니저가 상당히 무거웠지만(당연할수 밖에 없음..)꽤 괜찮은 생각이였음..하지만 문제는* 큰틀 그 이상 그 이하 생각을 못했던 점..큰틀과 점점 더 작아지는 부분에 대해 생각이 매우 미흡..하나의 객체나 하나의 무언가 필요할때 그 연계성에 대한 생각이 매우 미흡했다..문서화가 없었다는 점이 미칠듯한 망한 요인..반드시 어느정도의 문서화가 필요하다..머릿속에..
-
정리쥬신게임아카데미/궁금했던것 2016. 1. 16. 01:20
STL안에 실체냐 포인터냐 이건 얕은복사를 생각하면된다 만약 내부에 멤버가 포인터인게 있다면 (내부에서 new하면) 이건 100프로 포인터를 넣어라 아니라면 실체를 넣는게 속도나 처리면서 좋음(소멸 delete를 따로 할 필요가 없음) 나눗셈은 겁나 느리다 쉬프트써라 멤버변수로 포인터있다면 이니셜라이저에 생성자에서 0넣어줘라 그래야지 초기화되지 않은 포인터 접근시 에러발생 백터사용시 erase pop_front사용시 가리키는 포인터 주의! 반드시 헤더에서 포함이 발생하는것이 상속의 단점이다(상속받기위해선 부모헤더포함한것) 시컨스전이에서 부모는 자식의 시컨스를 타이틀이라고하면 타이틀 new하고 게임이면 게임을 new 하는 일대일 대응방식임..부모에서 전부 switch로 하는게 이님 일일이..확인생성 등등...
-
상속시 부모 private 변수,복사생성자, 깊/얕 복사, 전역변수, 포인터 레퍼런스?, 함수호출규약?쥬신게임아카데미/C++ 2016. 1. 7. 13:19
//------------------------시작----------------------------// ////복사생성자 호출모양 ////1. CObj obj(10); ////CObj obj2(obj); //기본적인 ****복사생성자**** 발생 // ////2. 함수 호출시 ****매개변수에 객체를 값에 의해 전달****될때 //void Render(CObj obj) //여기서 CObj obj는 값에의해 전달되는 매개변수이니.. ****복사생성자**** 발생.. ////3. 함수 내에서 ****객체를 값에 의해 리턴****할떄 //CObj Func() //{ // CObj obj(10); // return obj; //obj가 반환값이 CObj값이기 때문에 ****복사생성자**** 발생 //} //C..
-
싱글싱글턴쥬신게임아카데미/궁금했던것 2016. 1. 6. 17:40
http://chfhrqnfrhc.tistory.com/entry/%EC%A0%84%EC%97%AD%EB%B3%80%EC%88%98%EC%99%80-%EC%A0%84%EC%A0%81%EB%B3%80%EC%88%98 https://kldp.org/node/121931 말그댈 싱글은..하나 턴은 인스턴스가 만들어지는것.. 싱글턴 패턴은 해당 클래스의 인스턴스가 하나만 만들어진다. - 어디서든지 그 인스턴스에 접근할 수 있도록 한다. - 클래스에서 자신의 단 하나 뿐인 인스턴스를 관리하도록 만들면 된다. 어떠한 객체가 꼭 하나만 있어야 되는 경우 싱글톤으로 정의한 클래스 템플릿을 상속 받도록 한다. 도대체 왜 쓸까? 흔히 관리하는 프로그램에서 많이 쓰인다고 한다. 어느 블로그에서 "서점에서 관리자가 책들을 관..
-
static 변수 특징쥬신게임아카데미/C++ 2016. 1. 6. 16:16
초기값을 주지 않을 경우 항상 0으로 초기화되고 프로그램을 실행시킬 때 단 한번만 초기화 된다.(초기값이 있든지 없든지 상관없고..없으면 0으로 한번만..) 아래의 상황을 고려해서 사용여부 결정 1. 클래스 설계시 멤버 변수 중에 모든 인스턴스에서 공통으로 사용해야 하고 상태 값이 변경되지 않는 경우에는 static 변수 사용 2. 클래스 설계시 메소드 중 내부의 인스턴스 변수를 사용하지 않는 것은 static메소드 사용 C/C++ C 프로그래밍 언어는 static, auto, register, extern 4개의 storage class - 여기에서 객체의 클래스가 아닌 집합의 의미를 가진다 - 를 가진다. static global variable 소스파일의 최상의 레벨에서 함수외부에 선언되는 stat..
-
함수 반환값 const / 멤버함수 const쥬신게임아카데미/C++ 2016. 1. 6. 15:35
주제 : 멤버함수의 반환값은 Const로 하여라. 안녕하세요~ : ) Crc12입니다. 이번주제는 멤버함수의 반환값을 Const로 하는 이유에 대해서 설명을 하려고 합니다. 아래에나오는 함수는 문자열을 이용하는 함수인데요 그 함수의 반환값에 대해서 설명하려고합니다. 우선 아래의 코드에 주목해 주세요. ( 적당한 소스가 될지는 모르겠습니다... ) 우선 아래에서 CMky라는 클래스를 선언하였습니다. class CMky { // Member Variable private: char *m_szString; // Operator public: const char *GetString(); // Member Function public: CMky() { m_szString = NULL , m_szString = n..