본문 바로가기

모바일 게임 개발/[입문]브러쉬유

23. 브러쉬유: 카멜레온색과 배경색 비교

 

 

# 카멜레온과 배경색이 같은지 확인하기

   색 변화가 끝났을 때

 

플레이어의 터치로 인해 색 변화를 마쳤을 때, 게임모드를 호출해서 카멜레온과 배경의 색깔이 같은지 확인하는 로직을 짜볼게요. 먼저 GM_Game을 열어주세요.

1. Custom Event 를 하나 만들고, CheckColor라는 이름을 붙이세요. 그리고 ChameleonColor 라는 이름으로 Inputs에 Vector형 핀을 추가해주세요.

 

외부에서 이 이벤트를 호출할 때 카멜레온의 현재 색상값을 함께 전달해 줄 수 있어요.

2. ChameleonColor 핀을 뽑아 들고 Equal (Vector) 노드를 찾아서 만드세요. ( == 으로 검색해도 나와요)

두 벡터값이 같은지를 확인하는 노드에요. 이 때, 0.0001 이라고 써진 부분은 오차범위입니다. 컴퓨터는 그 특성상 실수를 정밀하게 계산하기가 어렵기 때문에 연산과정에서 미세한 오차가 빈번하게 발생해요. 그래서 오차범위를 지정해줍니다. 대부분의 컴퓨터에서는 부동소수점 방식이라고 하는 실수 표현 방식을 사용해요. 자세한 내용은 아래 링크에서 확인해보세요.

 

부동소수점 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 초기의 전기기계식 프로그래밍 가능한 컴퓨터 Z3에는 부동소수점 산술 기능이 포함되었다. (뮌헨의 국립 독일 박물관) 부동소수점(浮動小數點, floating point) 또

ko.wikipedia.org

3. 변수 목록에서 BackgroundColor를 Get 노드로 불러온 뒤, Equal (Vector) 노드의 두번째 핀과 연결하세요.

4. Branch 노드를 만들어서 아래와 같이 연결하세요. (Branch 노드는 B+좌클릭으로도 만들어져요)

5. 테스트용 노드를 추가하겠습니다. Print String 노드를 두개 만들어서 True와 False에 각각 연결하고 아래와 같이 구성하세요. 다 마치셨으면 Compile & Save를 해주세요.

True와 연결된 노드에는 "일치", False와 연결된 노드에는 "불일치"라고 써서 제대로 작동하는지를 확인하겠습니다.

6. 콘텐츠 브라우져에서 Chameleon 액터 블루프린트를 열고 Timeline 노드의 Finished 핀을 찾으세요.

 

7. Get Game Mode 노드를 찾아서 만들고, Cast To GM_Game 노드까지 만들어서 Finished 핀에 연결하세요.

8. As GM Game 핀을 뽑은 상태에서 방금 위에서 만든 CheckColor 이벤트 호출 노드를 만드세요.

9. BodyColor 변수의 Get 노드를 Check Color 이벤트 호출 노드에 연결하고 Compile & Save 하세요.

이제 Chameleon 액터는 색변화가 끝날 때 마다 GM_Game에게 자신의 색을 전달하면서 배경색과 일치하는지를 요청할거예요.


# 확인하기

 

플레이 버튼을 눌러 확인해보겠습니다. (화면 속 글씨가 좀 작아서 모바일에서는 안보일수도 있겠네요)

각각 불일치 / 일치라고 써져있어요.

 

 

잘 작동하는 것을 확인하셨나요? 이번 장은 여기까지 진행할게요. 다음 장에서는 일치/불일치 결과에 따라 콤보 숫자를 증가시키거나 생명력을 빼는 작업을 해주겠습니다.

다음시간에 만나요~