원티드_언리얼RPG 2기/WinApi(7)
-
Winapi 최종 프로젝트 회고록
1. 프로젝트 개요프로젝트명: 타계깃허브 링크: https://github.com/PotenUpRunBetterRun/RunBetterRun개발 기간: 4/13 ~ 4/25주요 기능/목표:제한된 시야와 공간 안에서 퍼즐과 탐험을 통해 공포를 유도하는 2.5D 탈출 게임을 구현했습니다. 타일맵 에디터를 만들어 맵 제작을 하고 레이캐스팅을 활용해 2D를 3D처럼 보이게 했습니다.사용 기술: C++, WinAPI, TileMapEditor, RayCasting, SDL_mixer, mfAPI 협업 툴: Git , Figma , Notion팀 구성: 고필규, 이보형, 서희영, 백승환 담당파트:타일맵 에디터 - 인게임 레벨 디자인 도구바이너리 파일 시그니처 기반 데이터 직렬화 - 파일 무결성 검증 및 효율적인 ..
2025.05.07 -
맵 에디터 만들기
https://kofeeel.itch.io/transmundus 2주동안 winapi에서 타일맵기반의 게임을 만드는 프로젝트를 진행했다. 레이캐스팅을 활용한 타일맵 기반 공포게임을 만들었다. 팀에서 데이터 관리와 맵을 담당했고 맵 에디터를 제작했다. 레퍼런스한 레이캐스팅 게임 에디터 처음 에디터를 만들기로 생각했을때 3가지를 고려하고 설계했다.타일, 몬스터, 아이템을 선택해서 배치할 수 있어야 함.에디터를 인게임에서 전환 가능한 신으로 구현할지 외부에서 따로 구현할지 정하기에디터에서 맵 저장/로드 기능 있어야함레벨 데이터(적과 아이템의 수량, 위치 정보, 플레이어 위치 정보, 맵크기, 타일 정보) 저장 초기 맵 에디터- 좌표계산을 잘못해서 샘플타일영역이 뒤죽박죽 되어있다. 쓰다보니 편리한 기능을..
2025.04.29 -
씬 매니저로 관리하기
여태까지 적이 등장하는 화면 , 플레이어 이동 , 배경을 모두 backbuffer를 생성하고 backbuffechdc 를 받아서 처리했다. 렌더링한 것들이 화면에 겹쳐 나오게 할 수 밖에 없었는데, 어떻게 하면 씬을 만들어서 관리를 할 수 있을까? 정답은 씬 매니저다. 씬 매니저를 만들어보자.씬 매니저란?씬 매니저는 게임의 다양한 화면(씬)을 관리하고 전환하는 핵심 컴포넌트입니다. 씬 간의 전환을 부드럽게 처리하고, 게임 상태를 효율적으로 관리합니다.주요 기능씬 등록: 게임에서 사용할 다양한 씬을 등록씬 전환: 현재 씬에서 다른 씬으로 전환씬 업데이트: 현재 활성화된 씬의 업데이트 처리씬 렌더링: 현재 활성화된 씬의 화면 출력구현 구조싱글톤 패턴: 전역적인 접근을 위한 싱글톤 디자인 패턴 적용맵 컨테이너..
2025.04.09 -
타일맵 툴 만들기 / 타일맵 파일 저장,로드기능 만들기
타일맵 툴 만들기 타일맵 에디터에서 위치와 인덱스 계산은 크게 두 부분으로 나눌 수 있다샘플 타일 영역에서의 선택 - 사용자가 배치할 타일을 고르는 부분메인 맵 영역에서의 배치 - 선택한 타일을 실제 맵에 배치하는 부분각 문제를 더 작은 단계로 분해해보자샘플 타일 영역 처리 단계영역 확인: 마우스가 샘플 타일 영역 안에 있는지 확인상대 좌표 계산: 샘플 타일 영역 내에서의 마우스 위치 계산타일 인덱스 계산: 상대 좌표를 타일 크기로 나누어 타일 인덱스 계산메인 맵 영역 처리 단계영역 확인: 마우스가 메인 맵 영역 안에 있는지 확인타일 위치 계산: 메인 맵 내에서 마우스가 위치한 타일 좌표 계산타일 정보 업데이트: 계산된 위치에 선택된 타일 정보 적용윈도우좌표계는 좌측상단기준으로 (0,0)이다. 따라서 마..
2025.04.08 -
탱크 만들기
게임의 기본적인 구조를 배웠다.게임은 크게 Init(), Release(), Update(), Render() 의 반복이다.초기화를하며 메모리를 할당하고, 메모리를 해제하고, 변경되는 위치를 업데이트 해주고 화면에 띄운다. 실습으로 미사일을 발사하는 탱크를 만들어봤다. 1. 탱크의 포신이 방향키 'a' , 'd'키로 움직인다.2. 스페이스바 키 입력을 받아 미사일 한발 발사한다.3. 미사일이 화면밖으로 나가야 다음 한발을 발사한다. 탱크부터 만들자탱크를 사용하기위해 Tank* 타입의 tank를 만들자 #pragma once#include "GameObject.h"class Tank;class MainGame : public GameObject{private: HDC hdc; //handle devi..
2025.03.10 -
0305 화면에 도형 그리기/ 마우스,키보드로 입출력받아 움직이기
작성 코드 실습 1: 자동차 그려서 a,d키 입력받아 움직이기실습 2: 사각형 10개를 만들고 드래그앤 드롭 기능 넣기 사각형이 특정범위를 벗어나면 별로 변하게 하기실습 3: destroyer라는 사각형 객체를 만들어서 지우개처럼 나머지 사각형들을 지우기실습 4: 큰 사각형 2개 , 작은 사각형 1개를 만들고 큰사각형에만 제어권이 있다 , 큰사각형을 벗어날 수없고 충돌시 다른 큰 사각형으로 소유권이 넘어가는 작은 사각형 만들기/* WinAPI : Windows Application Programming Interface 운영체제가 응용프로그램 개발을 위해 제공하는 함수의 집합 핸들(Handle) : 윈도우 각 객체를 구분하는 인덱스 번호(정수) 메시지(Message..
2025.03.06