본문 바로가기

스타크래프트2 에디터/에디터 강의

29. [트리거] 랜덤 트리거



이번 강의에서는 많이 사용되는 랜덤 값 설정법을 간단히 알아보겠습니다.


우선 랜덤 값은 무작위 정수라는 것을 이용합니다.

무작위 정수란 최솟값과 최댓값을 설정해주고

두 수 사이에 있는 정수 하나를 골라 실행한다는 뜻입니다.

이 때 두 수 사이 정수는 최솟값과 최댓값을 포함합니다.

따라서 확률에 이용할 때 %는 사용할 수 없고,

50%의 경우 최솟값을 1로 설정하고 최댓값을 2로 설정하고 (1/2 = 0.5 = 50%),

25%의 경우 최솟값을 1로 설정하고 최댓값을 4로 설정해야 (1/4 = 0.25 = 25%) 합니다.


먼저 유닛을 만들 때 랜덤하게 설정해봅시다.

0~100 사이의 개수만큼 생성되거나, 아예 생성이 안 될수도 있습니다.


다음은 확률적으로 발동하는 트리거입니다.

바로 전환 문을 이용하는 것인데요.

C언어의 Switch 문과 비슷합니다.

Switch 문의 값을 무작위 정수로 설정하고,

밑에 대소문자는 값에 따라 행동이 실행되게 합니다.

(원래 경우를 뜻하는 case인데, 대소문자라고 번역이 되었네요... 대소문자가 뜬금없이 왜 나오는지;;;)

주사위를 하려고 했는데 실수로 0~6으로 설정했네요. 주사위의 경우 1~6으로 설정해야 합니다.

이걸 이용하면 부루마블 게임을 만들 수도 있겠죠?

정수 값 대신 정수 변수를 넣어줄 수도 있습니다.


대소문자 밑의 기본은 Switch 문에서 default: 와 같은 기능입니다.

대소문자 아래의 값 중에 만족되는 값이 나오지 않았을 때, 일반적으로 실행되는 행동입니다.



추천 눌러주세요 ^^



다음은 무작위 지점입니다.

유닛을 무작위 지점에 생성하고 싶다면 구역의 무작위 지점을 이용합니다.

구역을 전체 지도로 해서 지도의 무작위 지점에 생성할 수도 있고,

구역 여러개를 만든 후 선택하여 숫자패드 0 키를 이용하여 합병한 후,

구역의 무작위 지점으로 설정하면 어느 쪽에 유닛이 생성될 지 알 수 없게 됩니다.


유닛 여러개를 생성하는데 그냥 개수를 2 이상으로 입력하면 유닛이 다 모여 있어서 이상하겠죠?

그 떈 반복문을 이용하면 유닛마다 구역의 무작위 지점에 설정됩니다.

저그의 경우 좀 더 어울릴만한 트리거입니다.



이상으로 강의를 마칩니다.

다음 강의는 오랜만에 데이터 관련 강의입니다.