프로젝트/[인프런] 게임 프로그래머 입문 올인원

[게임 프로그래머 입문 올인원] 2D 포폴 준비 : 타일맵 (108강)

순정법사 2024.09.05

A. 2D 포폴 준비

1. 타일맵 

a. 사전 준비 (삭제)

계속해서 여기서 포트폴리오를 준비할 예정!

 

연습한 파일은 날려주기

 

DevScene에서 연습했던 내용들을 Scene으로 옮겨주기

 

여기서 보이는 actor나 ui들은 개발씬 뿐만아니라 다른 씬에서도 사용될 수 있기 때문에 Scene으로 올려준다

 

Super 적어주기

 

삭제한 파일의 TestPanel 코드 지워주고

 

요 코드도 Scene으로 이사

 

Super::Init()을 아래로 내려주고

 

위 코드도 삭제하고
Scene으로 옮겨주기

 

까지해서 코드를 정리해주기

 

b. 맵의 종류 : 타일맵

맵은 통맵 / 타일맵 2가지로 나뉨

 

  • 통째로 로드하면 통맵 
  • 타일맵은 페인팅하듯 칠하는걸 타일맵

 

타일맵도 결국엔 리소스

 

💙 리소스와 오브젝트의 차이점

리소스 : 영구적으로 저장되어야하는 파일, 언제든지 로드할 수 있어야함
오브젝트 (액터) : 씬에 배치해서 동적으로 생성하는 개념 

 

게임시작할때마다 불러들여서 보여줘야함

 

게임 캐릭 관련된건 Paper2D 라는걸로 묶어줌

 

로드세이브는 미리 만들어주기

 

각 타일을 찍으려면,

먼저 맵의 크기와 타일의 크기 2가지를 알아야 함

 

 

로드 세이브는 비워두고(다음시간)

 

타일 함수를 작성해준다

 

c. 타일맵 추가하기

리소스매니저에 타일맵을 추가해주고

 

추가추가!

 

세이브 로드는 비워두고, 타일맵을 만들어준다

 

d. 타일맵 액터 만들기

언리얼구조로 만들어주고 있음

플립북, 스프라이트처럼 그걸 사용할 객체 액터를 만들어줌 (그래야지 볼수있으니까!)

 

 

상위객체 먼저 실행해주고

 

렌더링시 O, X이미지를 가지고오게

 

모든 값을 순회해서 찍어주기

 

e. 이미지 파일 로드

타일맵 액터에서 사용되는 이미지 파일을 

DevScene에서 이미지 파일 로드 추가해주기

 

이 뒤로 충돌처리에 사용한 코드들 다 삭제해주기

 

타일맵 액터를 따로 빼주자

 

액터를 생성해주고, 타일맵 사이즈를 보여주기!

 


 

중간에 코드 오류 해결중

 

문제점 1) 

 

중간에 코드를 한번 가지고 오면서 원래 작성했던 베이스랑 다른경우인가? 하고 뜯어보니

저장되는 경로가 정말 달랐다

맞게 수정해주고

 

문제점 2) 

 

Devscene1번줄에서 문제가 생김

으윽

 

그냥 처음부터 뭔가 잘못됐다 이말이다

아무리 봐도 뭔소린지 모르겠어서 구글링... 했는데 기적을 발견했다

 

 

[ VS 삽질 ] 확인할 수 없는 외부 참조, 확인할 수 없는 외부 기호

LNK1120 LNK2019 링커 에러는 정말 만나고 싶지 않은 녀석들이다. 찾아봐도 도무지 답도 안나오고 에러를 봐도 어디서 난건지 알 길이 없다. 분명 VS상에서는 오류가 없다고 하는데 빌드가 안되니 진

davi06000.tistory.com

 

엉엉 결국 찾았다 결국 로그를 잘 뜯어보면 답이 나온다 이거야

 

override 써놓고 바보같이 abstract 안쓴 나.... 채찍질해

 

엄마 나 서울대 합격햇어

 


 

이렇게 그려준 타일맵에서, 당연히 충돌처리를 할 수도있고

강가라면 배를탄다, 포장도로에서는 빠르게 걷는다 처럼 다양하게 활용 가능하다

 

f. 컬링

위에서처럼 타일맵을 그려주게 되면 프레임이 많이 내려가는데 

이걸 해결해주는게 컬링 👉 3D도 동일하게 적용

 

🌟 전체를 그려주는게 아니라 일부 영역만 그려주는것

 

당연히 보정은 타일맵을 사용하는 액터에서!

 

이렇게 되면 전체 맵을 렌더링 하지 않아도 되어 프레임도 올라감

 

g. 타일 정보 변경하기

기능 추가해주고

 

값을 변경하게 작성해준다

 

 

그럼 이렇게 타일을 찍을 수 있다!!

 

리니지 모바일에서도 다중 접속되면서 충돌이 일어나야하면 칸으로 관리하게 됨 (MMO기준)

 

이 내용은 다음에 배울 세이브 로드로 위에서 생성한 값을 저장해서 사용할 수 있도록 해야함 

 

 

 


출처 : https://www.inflearn.com/course/%EA%B2%8C%EC%9E%84-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8-%EC%9E%85%EB%AC%B8-%EC%98%AC%EC%9D%B8%EC%9B%90-rookiss#curriculum

 

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버 -

어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘, STL, 게임 수학, Windows API, 게임 서버 입문으로 이어지는 알찬 커리큘럼으로 게임 프

www.inflearn.com