분류 전체보기 143

[DirectX11] 1. DirectX11 렌더링 파이프라인

1. DirectX 11 렌더링 파이프라인 개요DirectX 11의 렌더링 파이프라인은 다음과 같은 단계로 구성된다.IA → VS → HS → TS → DS → GS → RS → PS → OM 하지만 실제로 자주 사용하는 핵심 단계는:IA → VS → RS → PS → OM2. 파이프라인 단계별 상세 분석2.1 IA (Input Assembler) 역할: 정점 데이터를 읽어서 기하학적 프리미티브(삼각형, 선 등)로 조립// IA 단계 설정 (Game.cpp의 Render() 함수에서)uint32 stride = sizeof(Vertex);uint32 offset = 0;// 정점 버퍼 설정_deviceContext->IASetVertexBuffers(0, 1, _vertexBuffer.GetAddress..

DirectX11 2025.06.03

[Win32API TBI 모작] 12. 아이템 (폭탄 & 픽업아이템)

이번에는 몬스터를 죽였을때 나온는 픽업아이템(동전, 폭탄, 열쇠)와 황금방에서 나오는 아이템에 대해 알아보자. 전체 소스코드 : https://github.com/vfly1189/TBI 🏗️ 클래스 구조 및 상속 관계CObject (부모 클래스)└── CItem (추상 기본 클래스) ├── CPickUpItem (수집 가능한 아이템) ├── CCollectiblesItem (장식용/영구 아이템) └── CBomb (폭탄 아이템) 📖 클래스별 상세 분석1. CItem (기본 아이템 클래스)역할: 모든 아이템의 기본 인터페이스 제공주요 특징:CObject를 상속받아 게임 오브젝트의 기본 기능 활용Item 구조체를 통한 아이템 통계 관리순수 가상 함수로 하위 클래스에서 반드시 구현해야 할 ..

[Win32API TBI 모작] 11. Scene & 전투 화면

이번에는 전투화면을 담당하는 클래스 CScene_Fight에 대해 알아보자. 전체 소스코드 : https://github.com/vfly1189/TBI화면 구성 🏗️ 클래스 구조 및 설계주요 멤버 변수// 렌더링 관리Direct2DMgr* pD2DMgr;// UI 패널들CPanelUI* statPanel; // 스탯 표시 패널CPanelUI* hpPanel; // 체력 UI 패널 CPanelUI* activeItemPanel; // 활성 아이템 패널CPanelUI* pickUpItemPanel; // 획득 아이템 패널CPanelUI* miniMapPanel; // 미니맵 패널// 데이터 매핑 컨테이너unordered_map m_ma..

[Win32 API TBI 모작] 10. Scene & 메인메뉴

이번에는 게임화면과 관련된 클래스 CScene과 메인화면을 담당하는 CScene_Main 클래스에 대해 알아보자 전체 소스코드 : https://github.com/vfly1189/TBI화면 구성 게임을 실행하면 바로 나오는 화면으로 Enter키와 Space바 키를 누르면 아래 화면으로 넘어간다. 메뉴를 선택하는 화면으로 현재는 새도전 메뉴만 구현해놓은 상태방향키 상, 하를 이용해 메뉴의 화살표를 움직이고 Enter키와 Space바 키로 선택 할 수 있다. 새도전 메뉴에서 넘어오면 위 사진과 같이 캐릭터를 선택할 수 있다.방향키 좌,우를 이용해 총 4개의 캐릭터 ( 아이작, 막달레나, 카인, 유다 ) 를 선택할 수 있다.이때 선택된 캐릭터에 따라 CScene_Fight에서 생성되는 캐릭터가 달라진다. ..

[Win32 API TBI 모작] 9. 몬스터 & State 패턴

이번에는 몬스터와 관련된 모든 클래스들에 대해 알아보자. 전체 소스코드 : https://github.com/vfly1189/TBI아키텍처 구조1. CMonFactory (Factory Pattern)역할: 다양한 타입의 몬스터 객체를 생성하는 팩토리 클래스 주요 특징:정적 팩토리 메서드: CreateMonster() 메서드로 통합된 몬스터 생성 인터페이스 제공타입별 전용 생성 함수: 각 몬스터 타입별로 특화된 생성 로직 분리헬퍼 메서드: 공통 초기화 작업을 담당하는 유틸리티 함수들 // 메인 팩토리 메서드static CMonster* CreateMonster(MON_TYPE _eType, Vec2 _vPos, Vec2 _vGridPos, int option = 0);// 타입별 전용 생성 함수stati..

[Win32 API TBI 모작] 8. CCollider & CImage & CRigidBody

이번에는 CObject의 다른 컴포넌트인 충돌체(CCollider), 이미지(CImage), 강체(CrigidBody)에 대해 알아보자. 전체 소스코드 : https://github.com/vfly1189/TBI1. CCollider (충돌 검출 컴포넌트)주요 기능충돌 영역 관리: 오브젝트의 충돌 범위를 정의하고 관리그룹별 충돌 처리: Player ↔ Monster 등 그룹 단위로 충돌 검사상대적 위치 지원: 오브젝트 중심으로부터 오프셋 위치 설정 가능핵심 구조class CCollider { static UINT g_iNextID; // 전역 ID 관리 CObject* m_pOwner; // 소유 오브젝트 Vec2 m_vOffsetPos; // 상..

[Win32 API TBI 모작] 7. Animator & Animation

이번에는 CObject의 컴포넌트 중 하나인 CAnimator 클래스와 애니메이션을 표현하는 CAnimation 클래스에 대해 알아보자 전체 소스코드 : https://github.com/vfly1189/TBI애니메이션 관련 클래스 ( CAimator & CAnimation )주요 구현 특징1. 다중 애니메이션 시스템 (Multi-Animation System)vector m_vecActiveAnims; // 활성 애니메이션 목록unordered_map m_mapAnim; // 모든 애니메이션 템플릿 기술적 특징:여러 애니메이션을 동시에 재생할 수 있는 시스템템플릿-인스턴스 패턴으로 메모리 효율성 극대화애니메이션별 독립적인 생명주기 관리장점:캐릭터가 걷기 + 공격 + 아이템 획득 이펙트를 동시에 표현 가..

[Win32 API TBI 모작] 6. CObject & CPlayer

이번에는 화면상에 그려질 모든 객체들의 부모클래스인 CObject 클래스와 player 객체인 CPlayer 클래스에 대해 알아보겠다. 전체 소스코드 : https://github.com/vfly1189/TBI핵심 아키텍처1. 컴포넌트 기반 오브젝트 시스템 (CObject)class CObject {private: // 컴포넌트들 CAnimator* m_pAnimator; // 애니메이션 관리 CTextUI* m_pTextUI; // UI 텍스트 CCollider* m_pCollider; // 충돌 처리 CRigidBody* m_pRigidBody; // 물리 시뮬레이션 vector m_pImages; // 이미지 렌더링 ..

[Win32 API TBI 모작] 5. Manager(4) - 아이템, 엔티티, 플레이어, 씬

이번 포스트에서는 게임 컨텐츠 관련 매니저에 대해 알아보자게임 컨텐츠 관련 매니저는 다음과 같다.아이템, 엔티티, 플레이어, 맵, 씬아이템, 엔티티, 플레이어 매니저는 대부분 이미지 분할, 병합 작업을 수행한다전체 소스코드 : https://github.com/vfly1189/TBI아이템 매니저 ( CItemMgr )개요CItemMgr은 게임 내 아이템 시스템을 총괄하는 매니저 클래스.Isaac-like 로그라이크 게임에서 플레이어의 아이템 소지, 픽업 아이템 관리, 그래픽 리소스 처리를 담당. 클래스 구조 분석핵심 데이터 구조PickUp 구조체typedef struct _PickUp { int m_iCoin; // 코인 개수 int m_iBomb; // 폭탄 개수 int m_..