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

[게임 프로그래머 입문 올인원] 2D게임 프레임워크 : 코드 구조 설계 (103강)

순정법사 2024.07.30

A. 코드 구조 설계

여태까지는 스프라이트를 렌더링해서 DevScene에서 출력하고 있었음

 

하지만 이 방식은 너무 번거롭고 매번 실행해야한다는 단점이 있음

 

따라서 플레이어를 만들어서, 플레이어의 이미지를 위와같이 출력한다고 하면

플레이어 안에서 따로 매번 만들어줘야 함 

 

1. 언리얼 방식

a. 액터 생성하기 

액터 : 씬에 배치할 수 있는 모든 오브젝트 

 

여태까지 사용하던 Object와 비슷한 내용

 

Object안에 액터 만들어주기

 

언리얼은 Init, Update의 용어가 위와같이 다르다, 좌표도 추가해준다

 

당연히 동시에 만들어주자!! (이거 깜빡해서 오류 30분 해맴..)

 

b. SpriteActor를 생성하기

Actor는 씬에서 배치될수 있는 모든 오브젝트를 의미함

즉, 모든 오브젝트는 Sprite가 없을 수 있음 

 

따라서 SpriteActor를 따로 생성해서 Actor를 상속받게 해 

렌더링이 필요한 부분만 따로 만들어 준다

 

Actor를 상속받는 SpriteActor를 생성하고

 

부모님을 호출해준다

 

이어서 DevScene에서 렌더링하던 부분을 가져와준다. 포지션은 Actor의 포지션을 사용

 

위에서 _pos.x - size.x/2, y의 위치는 여기

c. 개발씬에서 액터를 추가

액터를 추가해주고

 

Init시 Actor 추가

 

당연히 Update도 여기서 해준다

 

d. 배경화면 렌더링하기

위와같은 방식으로 배경화면을 렌더링

 

_background로 이름을 변경해준다
위에서 가져온 stage01파일을 Init해주고
Update도 해주자

 

여기서 렌더링해주면 된다

 

그럼 이렇게 잘 나온다!

 

💥 구현 고민

위에서 구현한 배경처럼 가만히 있으면 문제가 되지 않음
하지만 SpriteActor에 Animation이 들어가야한다면 문제가 생김 

➡ SpriteActor는 엔진코드이며, 여기다가 애니메이션을 넣는건 안됨

💙 해결방법은

SpriteActor처럼 추가적으로 클래스를 파서 
엔진에서 제공하는 상위 계층 중 필요한 애를 골라 상속받아 작업하면 됨

움직이는 Player를 만든다면 이렇게 SpriteActor를 상속받는 객체를

 

만들어주면 된다 / todo부분에 애니메이션 생성하면 됨


여기서 백그라운드 작업한 것 처럼 Player를 하나 더 생성해서 만들어주면 끝!

 

언리얼은 위와같이 상속이 중요함 

 

다 만들어줬으면 이렇게 정리해주자

 

 

2. 유니티 방식

GameObject를 레고조립 하듯 다양한 기능을 붙여 만든다

 

a. GameObject 생성하기

GameObject는 씬에 배치하는 최상위 오브젝트 = 엑터 

 

b. component 생성하기

오브젝트의 부품이 될 컴포넌트를 생성해주자

 

컴포넌트들의 부모가될 Component 생성

 

05.Component를 생성해주고 클래스도 생성해준다

 

기본적인 부분만 작성

 

 

c. 컴포넌트 넣어주기

게임 오브젝트에 Component를 만들어주기

 

컴포넌트를 넣어주고

 

컴포넌트 불러오기

 

d. 렌더링할 부품 만들기

component를 상속받는 SpriteRenderer를 만들어주기

 

생성

 

Component를 상속받는 SpriteRenderer를 작성해주고

 

나머지는 작성 안해도 됨 / 렌더링 부분에만 저번에 작성한 것 처럼 넣어주기

 

e. 씬에 추가하기

게임 오브젝트를 생성해주고

 

게임 오브젝트를 생성해주고 이미지 부품장착하기

 

이것도 init, update, render해주면

 

저렇게 이미지가 나온다!! (아직 플레이어 X)

 


 

 

 

 


출처 : 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