PushPush 게임 만들기/11일차 ~ 13일차
6. Data
Stage.cpp #include "Stage.h" Stage::Stage() { } Stage::~Stage() { } bool Stage::Load() // 스테이지를 불러오는 작업 { FILE* fp = nullptr; // errno_t error = fopen_s(&fp, "..\\Stages\\Stage01.txt", "rt,ccs=UTF-8"); // ..\\ = 전 파일로 들어가는 방식 // fopen_s = 파일을 여는 함수 // Stage01.txt는 하드디스크에 있는 파일이므로 위처럼 써야 램으로 불러올 수 있음 (왜냐하면 우리가 돌리는 프로그램은 램에서 돌아가니까) if (error != 0) //error가 0일때는 밑에처럼 나오게 출력 { std::wcout
5. Scene
씬들을 모아놓은 파일 Scene.cpp ==> 기본 씬의 소스파일 #include "Scene.h" Scene::Scene() { } Scene::~Scene() { } void Scene::Update() { } void Scene::Render() { mMap.Render(); } void Scene::Destroy() { } Scene.h ==> 기본씬의 헤더파일 #pragma once #include "Map.h" // 추상클래스 ( 순수가상함수가 하나라도 들어 있으면 ) class Scene { public: Scene(); ~Scene(); // 순수가상함수 virtual void Initiailize() = 0; virtual void Update() = 0; virtual void Rend..
3. GameObject
게임에 들어가는 오브젝트를 담는 파일 GameObject.cpp #include "GameObject.h" GameObject::GameObject() : mPos() , mCh('\0') //숫자에서는 0, 문자에서는 null을 사용 { } GameObject::~GameObject() { } GameObject.h #pragma once #include "Common.h" class Map; class GameObject { public: GameObject(); virtual ~GameObject(); virtual void Update(Map* map) {} virtual void Render() {} void SetPos(Vector2 pos) { mPos = pos; } void SetPos(..
4. Common
Common.h ==> 헤더파일을 하나하나 지정해주기 힘드므로 Common.h에 헤더파일들을 포함해줌으로써 간단히 사용 #pragma once #include //콘솔 이동키를 불러오는 함수 #include #include #include "yaMath.h" enum COLOR { BLACK, /* 0 : 까망 */ DARK_BLUE, /* 1 : 어두운 파랑 */ DARK_GREEN, /* 2 : 어두운 초록 */ DARK_SKY_BLUE, /* 3 : 어두운 하늘 */ DARK_RED, /* 4 : 어두운 빨강 */ DARK_VIOLET, /* 5 : 어두운 보라 */ DARK_YELLOW, /* 6 : 어두운 노랑 */ GRAY, /* 7 : 회색 */ DARK_GRAY, /* 8 : 어두운 회색 ..
2. Highlevel_Interface
게임이 돌아가는데 필요한 기초 코드 Application.cpp (소스파일) #include "Application.h" #include "TitleScene.h" #include "PlayScene.h" Application* Application::mInstance = nullptr; // 클래스 바깥에서 초기화를 해줘야함 (전역변수처럼 사용하기 위해서) Application::Application() // Applicaiton.h 에서 빠른 작업 및 리팩터링하면 : mbRunning(true)// Applicaiton.cpp에서 자동으로 이렇게 생성 , mPlaySceneNumber((int)SCENETYPE::TITLE) // int형 형변환 { clear(); } Application::~App..
1. main.cpp
게임의 무대가 되는 소스파일 ==> 모든 게임의 메인소스파일은 이런 (유니티싸이클) 처럼 돌아간다고 볼 수 있다 #include #include "Application.h" //extern을 사용하면 어디서든 application 어디서든 사용 가능 int main() { setlocale(LC_ALL, ""); //이 문장을 호출하지 않으면 파일경로에 한글이 들어가면 실행이 안된다. Application::GetInstance()->Initiailize(); while (Application::GetInstance()->GetIsRunning()) { Application::GetInstance()->Update(); //update할때 케릭터가 죽거나 몬스터를 잡으면 isRunning이 false가 ..
PushPush 게임 만들기
C++ 로 게임을 만들려면 기본적으로 유니티 라이프 사이클을 기초로 한다 게임이 만들어지는 과정 0. main.cpp가 기본 무대이므로 여기서 시작한다 1. 하이레벨 인터페이스를 만든다 Application.cpp 와 Application.h 추가 2. 게임오브젝트 파일을 만든다 Gameobject.cpp와 Gameobject.h 추가 Map.cpp와 Map.h를 추가 3. Common 파일을 만든다 Common.h와 yaMath.h 헤더파일들 추가 4. Scene 파일을 만든다 Scene.cpp와 Scene.h 추가 5. PlayerScene.cpp와 PlayerScene.h를 만든다 6. TitleScene.cpp와 TitleScene.h를 만든다 Render 함수 : 시작화면을 그려준다 Update..