일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 프로토타입 패턴
- 싱글턴 패턴
- 함수형 팩터리
- 컴포지트
- 내부 팩터리
- 데커레이터 패턴
- 브릿지
- 모던C++디자인패턴
- 프로토타입
- 컴포지트 패턴
- 추상 팩터리
- 흐름식 빌더
- 디자인 패턴
- 디자인패턴
- 프로토타입 중복처리
- 컴포지트 빌더
- 싱글톤
- 빌더
- 그루비 스타일 빌더
- 데커레이터
- 동적 데커레이터
- 브릿지 패턴
- 싱글톤 패턴
- 팩터리
- 팩터리 메서드
- 팩터리 패턴
- 동적 데코레이터
- 싱글턴
- 단순한 빌더
- 빌더 패턴
- Today
- Total
목록Design Pattern/게임 디자인패턴 (7)
GGym's Practice Notes
#include // 임시 키 #define PRESS_B 'B' #define PRESS_DOWN 40 #define RELEASE_DOWN 41 // 상태를 열거형으로 정의 enum State{ STATE_STANDING, STATE_JUMPING, STATE_DUCKING, STATE_DIVING }; // 임시 키 입력을 위한 임시 클래스 struct Input{ bool operator==(char&& input){ if(input == key) return true; else return false; } private: char key; }; // 상태를 사용할 Heroine 클래스 struct Heroine{ Heroine(int maxCharge, int jumpVelocity) : MAX..
최대한 책의 예제코드를 따라 써봤는데 콘솔 환경에서 실행 가능한 정도로는 작성하지 못했다. 대충 코드를 수정하면 실행 가능하게 할 수 있지만 콘솔환경에서 띄우는 것은 내 맘에 안들기도 해서 개시를 안했었다. 나중에 OpenGL과 glut를 사용해서 키보드 콜백으로 명령패턴을 적용했을때 잘 작동 하였는데, 계속 개선을 해보고 다른 게시글에 다시 OpenGL/GLUT를 적용한 코드를 올려야겠다. #include using namespace std; #define BUTTON_LEFT 37 #define BUTTON_UP 38 #define BUTTON_RIGHT 39 #define BUTTON_DOWN 40 // temp key define #define BUTTON_X 65 #define BUTTON_Y ..
한개의 인스턴스만 갖는 싱글턴 패턴을 적용시켜 파일시스템을 구축해보는 예제를 보고 적용해보았다. 예제코드를 제대로 돌아가게 만들기 위해 간단히 손보았다. (private으로 되어있는 생성자 때문에 friend 클래스를 쓴다든지...) 결과적으론 잘 작동한다. 한개의 인스턴스만 생성이 되며 플랫폼에 맞는 자식 클래스가 생성이 된다. #include using namespace std; //#define SWITCH #define PLAYSTATION4 class FileSystem{ public: static FileSystem& instance(); virtual ~FileSystem(){} virtual char* readFile(char* path)=0; virtual void writeFile(ch..
책에선 클래스, 스폰 함수, 템플릿을 사용하여 프로토타입 패턴을 작성했다. 막상 작성하고 나니 프로토타입 패턴이라기 보단 Spawner를 만드는 것 같았지만 뒤에 코드없이 설명만 해둬서 그냥 내 입맛에 맞게 수정하였다. 수정할때 이전에 C++디자인패턴에서 배웠던 프로토타입 팩토리를 추가해서 프로토타입을 만들도록 하였다. 생성하는 과정이 복잡한데, 나중에 빌더 패턴하고 합쳐서 예쁘게 사용하면 좋을 듯 싶다. - 클래스 기반 프로토타입 생성 더보기 class Spawner { public: virtual ~Spawner(){} Spawner(Monster* prototype) : prototype_(prototype){} Monster* spawnMonster(){ return prototype_->clon..
책 : 게임 프로그래밍 패턴 (https://book.naver.com/bookdb/book_detail.nhn?bid=10615724) 참고 블로그 글 : https://boycoding.tistory.com/107?category=959177 C++ 디자인 패턴 03. 관찰자 패턴, 옵저버 패턴, Observer Pattern 관찰자 패턴, 옵저버 패턴, Observer Pattern 객체 사이에 일 대 다의 의존 관계를 정의해두어, 어떤 객체의 상태가 변할 때 그 객체에 의존성을 가진 다른 객체들이 그 변화를 통지 받고 자동으로 업에이트될 수.. boycoding.tistory.com 관찰자 패턴은 이대로 사용하면 종속성 문제와 같은 문제들도 클 것 같다... C++ 디자인 패턴 책에서 이러한 문제..
각각의 커맨드들이 스택에 맞추어 실행된다. 커맨드는 0 0 1 5 0 50 2 으로 아래와 같이 명령이 실행된다. 0 : 0 push 1 : 0 pop ( 오브젝트 리스트 0 ) 5 : 0 의 체력 가져옴 ( 체력 출력 ) 0 : 50 push 2 : 50 pop ( 체력 설정) #include #include using namespace std; void assert(bool check){ if(!check); // 예외발생 } // 바이트코드 enum Instruction{ INST_LITERAL = 0x00, INST_OBJECT = 0x01, INST_SET_HEALTH = 0x02, INST_SET_WISDOM = 0x03, INST_SET_AGILITY = 0x04, INST_GET_HEALT..