A. Scene과 SceneManager
로비창인지 게임창인지 구분하기 위한 scene
플레이어와 몬스터는 object로 구분해서 만듦
➡ 지금은 엔진 / 컨텐츠 섞어서 만들지만 나중엔 구분하게 됨
1. 기본 틀 잡기
a. Scene, object 생성하기
Scene은 최상위 객체, 화면의 모든 처리나 물체의 제어를 담당함
📁 02.Scene > 📄 Scene.h
📁 02.Scene > 📄 Scene.cpp
b. SceneManager 생성하기
모든 오브젝트들을 관리하는 역할
📁 99.Headers > 📄 Enums.h
📁 01.Manager > 📄 SceneManager.h
💙 SceneManager가 Scene을 하나씩 들고 있는 이유
영화촬영처럼 다양한 화면을 촬영해야 한다면
화면에 들어가는 물체와 공간, 규칙들을 각 환경에 따라 모두 다르게 설정해야 하는데
모든걸 하나에 놓으면 나누기 굉장히 애매해짐
👉 따라서 Scene을 따로 둬서 관리하는 것!
📁 01.Manager > 📄 SceneManager.cpp
c. GameScene, DevScene 생성하기
위에서 작성한 새로운 Scene 만들기처럼 새로운 Scene을 만들어줌
엔진쪽이 아닌 파일은 새로운 Game 폴더를 파서 관리
📁 02.Scene > 📁 Game > 📄 DevScene
개발씬에서는 플레이어를 test로 그려볼것임
상속받으면 전방선언은 의미없음, 무조건 include로 상속받는 객체를 받아줘야함
📁 02.Scene > 📁 Game > 📄 GameScene
d. SceneManager 작성하기
📁 01.Manager > 📄 SceneManager.cpp
다시 씬매니저로 돌아와서 타입에 따라 씬을 바꿔주는 코드를 작성해주기
📁 99.Headers > 📄 Defines.cpp
이때 씬을 지워주는 코드는 자주 사용되니 메크로로 따로 작성해주고
작성된 코드를 사용하는 clear 코드도 작성해주기
e. Game.cpp파일 작성하기
2. 기능 생성하기
a. DevScene으로 원 움직이기
b. 문제점 처리
1) 대각선
대각선으로 움직이면 빨라지는걸 볼 수 있는데 이건 나중에 게임 수학을 배워서 처리할 예정!!
2) 잔상
더블 버퍼링으로 처리
하나는 그리는 용도로 사용, 하나는 출력하는 용도로 사용해서 다 그렸다면 출력하는 방식으로
➡ 다음 시간 주제!!
'운영체제 > 입출력 시스템 : Windows API' 카테고리의 다른 글
[게임 프로그래머 입문 올인원] Windows API 입문 : 리소스(92강) (0) | 2024.04.08 |
---|---|
[게임 프로그래머 입문 올인원] Windows API 입문 : 오브젝트 설계 #1, #2(90, 91강) (2) | 2024.04.06 |
[게임 프로그래머 입문 올인원] Windows API 입문 : 더블 버퍼링 (89강) (1) | 2024.04.06 |
[게임 프로그래머 입문 올인원] Windows API 입문 : 프레임워크 제작 (87강) (0) | 2024.04.01 |
[게임 프로그래머 입문 올인원] Windows API 입문 : 기본 템플릿 분석 (86강) (0) | 2024.04.01 |