마인크래프트 게임이 아니라 과학입니다

[6화] 마인크래프트 스크립트 강좌 본문

◈ 마인크래프트 제작 [심화]

[6화] 마인크래프트 스크립트 강좌

텐너스 2020. 4. 27. 20:09

스크립트 강좌 6화를 시작해 보도록 하겠다.

오늘은 상태부에 대해서 좀 더 알아 보도록 할 것이다.

 

먼저 저번화에서 한 내용에 대해 복습해 보자.

저번화에서는 이벤트부와 상태부를 활용해서 블럭을 캤을 때

블럭이 무슨 블럭인지에 따라 다른 메시지가 출력되는 구문을 만들었었다.

 

오늘은 상태부 = if 문 에 대해서 자세히 알아볼 것인데,

상태부를 쓸때는 상태부 아래에 다른 상태부가 더 들어가도 적용이 된다.

예를 들어 저번에 한 구문에서 [플레이어가 쉬프트를 누르고 있을때] 라는 상태부를 추가하면 이렇게 된다.

 

 

이렇게 쓴 것을 해석하면 이렇게 된다.

[블럭을 캤을때] - [만약 플레이어가 웅크리고 있다면] - [만약 캔 블럭이 다이아 블럭이라면]

- ["다이아 블럭을 캠" 이라는 메시지를 플레이어에게 보낸다.]

라는 뜻으로 해석이 가능하다.

 

그리고 상태부에는 또 한가지 추가할 수 있는 것이 있다.

바로 "상태부의 조건이 충족되지 않았을 때" 라는 조건을 추가 할 수 있다.

 

이걸 추가하려면 "else:" 를 사용해야 한다.

 

 

이렇게 상태부와 같은 세로줄에 else: 를 써주면 

상태부가 충족되지 않았을때 발동될 구문을 쓸 수 있다.

 

또한 만약 상태부 위에 상태부가 하나 더 있다면 

위에 있는 상태부가 먼저 충족 되어야 아래의 상태부가 발동 될 수 있다.

위의 구문에서 예를 들자면

"플레이어가 웅크리기를 누르고 있을때" 라는 조건이 충족 되어야만 아래의 "캐진 블럭이 다이아 블럭일때"

라는 상태부가 발동될 수 있다.

만약 "플레이어가 웅크리기를 누르고 있을때" 라는 조건이 충족되지 않으면 

" else: " = 조건이 충족되지 않았을때

가 충족되어 "웅크리기를 누르지 않음" 이라는 메시지가 플레이어에게 전달된다.

 

상태부에 대한 예시를 하나 더 들어주자면

"플레이어의 도구가 ?? 일때" 라는 상태부를 넣을 수 있는데,

이 상태부는 "if player's tool is ??:" 이라고 써주면 된다.

 

예를 들어 위의 구문에서 " if player is sneaking" 을 지우고 "if player tool is diamond pickaxe:" 를 넣으면

diamond pickaxe 가 다이아몬드 곡괭이를 나타내기 때문에 

위의 구문을 해석하면

[블럭을 캤을 때] - [만약 플레이어의 도구가 다이아몬드 곡괭이라면] - [만약 캔 블럭이 다이아몬드 블럭이라면]

- ["다이아블럭을 캠" 이라는 메시지를 플레이어에게 보낸다]

라고 해석이 가능하다.

그럼 이제 이 구문을 게임 내에서 실험해보자.

먼저 다이아몬드 블럭을 다이아몬드 곡괭이로 캐보자.

 

이렇게 잘 메시지가 출력된다.

 

 

그럼 이번에는 조건이 충족되지 않았을 경우를 확인하기 위해서

철 곡괭이로 다이아몬드 블럭을 캐보도록 하겠다.

 

이렇게 조건이 충족되지 않았을 때 나와야 할 메시지인

"도구가 다이아몬드 곡괭이가 아님" 이라는 메시지가

잘 출력되는 걸 볼 수 있다.

 

 

*end - 마무리

 

이렇게 오늘은 상태부를 좀 더 활용하는 방법에 대해서 알아보았다.

상태부 하나하나마다 "else" 를 달아서 조건이 충족되지 않았을 경우에 

실행될 구문을 넣을 수 있기 때문에 잘 활용해 보면 좋을 것 같다.

다음 7화에서는 상태부의 종류를 몇가지 더 알아보도록 하자.

 

***만약 궁금한 점이 있다면 댓글에 남겨주세요***

 

---To be continue / 다음에 계속---

 



Comments