안녕하세요.
애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.
오늘은 무얼 할까 고민하다가 업무에 직접적으로 도움되는 것은 아니지만, 배열과 랜덤 함수를 사용하는 방법을 알 수 있는 슬롯머신을 만들려고 합니다.
사실저는 슬롯머신을 예전에 오락실에서 꽃놀이라는 게임으로 처음 접했는데,
완성본은 다음과 같이 예상합니다.
슬롯 머신의 실행 방법을 생각해 보겠습니다.
1. 슬롯의 칸은 3 * 3으로 9칸이다.
2. 코인은 횡으로 3개 라인으로 걸 수 있습니다.
(물론 종으로도 걸수 있고 대각선 2개를 추가해서 총 8개를 걸 수 있지만, 기본개념을 확장하는 것이기 때문에 복잡하게 가지 않겠습니다.)
3. 슬롯은 0~9 까지의 숫자가 랜덤 하게 출력된다.
4. 각각의 라인에 코인은 최대 4까지 걸수 있다.
5. '+'와 '-'로 거는 코인의 양을 조절합니다.
6. Run버튼으로 실행합니다.
7. 슬롯이 맞으면 적당히 코인을 추가해 줍니다.
조금 더 공부하고 싶으신 분은 제가 만든 것에 추가로 더 작업을 하시면 좋을 것 같습니다.
우선은 위 이미지와 같이 UI를 이용하여 다이얼 로그를 만들도록 하겠습니다.
다음과 같이 입력하겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
try(destroydialog slot_roll) catch()
rollout slot_roll "슬롯머신"
(
label slot11_lab " 0" pos:[30,10] width:20 height:20 style_sunkenedge:true
label slot12_lab " 0" pos:[70,10] width:20 height:20 style_sunkenedge:true
label slot13_lab " 0" pos:[110,10] width:20 height:20 style_sunkenedge:true
label slot21_lab " 0" pos:[30,45] width:20 height:20 style_sunkenedge:true
label slot22_lab " 0" pos:[70,45] width:20 height:20 style_sunkenedge:true
label slot23_lab " 0" pos:[110,45] width:20 height:20 style_sunkenedge:true
label slot31_lab " 0" pos:[30,80] width:20 height:20 style_sunkenedge:true
label slot32_lab " 0" pos:[70,80] width:20 height:20 style_sunkenedge:true
label slot33_lab " 0" pos:[110,80] width:20 height:20 style_sunkenedge:true
label bet2_lab "0" pos:[15,12]
label bet1_lab "0" pos:[15,47]
label bet3_lab "0" pos:[15,82]
label coin_lab "0" pos:[5,110]
button add_btn "+" pos:[30,110] width:25 height:25
button sub_btn "-" pos:[60,110] width:25 height:25
button run_btn "Run" pos:[90,110] width:40 height:25
)
createdialog slot_roll width:140 height:140
|
cs |
위 스크립트에 대해서는 따로 설명드리지 않겠습니다.
특별한 기술이 들어가 있는것은 아니고 단순히 UI를 표시하는 것입니다.
(이해하기 어려우시면 '맥스 스크립트 기본 > UI'를 확인해 주세요.)
우선 '+' 버튼으로 코인을 추가하는 것에 대해 작업하겠습니다.
25번 라인 밑에 다음과 같이 작업을 하겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
on add_btn pressed do
(
betCoin += 1
slotCount += 1
if(slotCount == 1) then
(
bet1Coin += 1
bet1_lab.text = (bet1Coin as string)
)
else if (slotCount == 2) then
(
bet2Coin += 1
bet2_lab.text = (bet2Coin as string)
)
else
(
bet3Coin += 1
bet3_lab.text = (bet3Coin as string)
slotCount = 0
)
)
|
cs |
이상태에서는 실행을 해도 에러가 발생할것입니다.
이유는 여기서 사용한 변수에 대해 정의를 하지 않았기 때문이죠.
변수를 정의하기 전에 스크립트의 내용을 살펴보겠습니다.
betCoin은 베팅을 한 코인의 값을 저장하기 위한 'add'버튼을 누를 때마다 1씩 증가합니다.
이후에 작업을 추가하겠지만, 유저가 가지고 있는 코인에서 1씩 빠지는 형식입니다.
slotCount는 코인을 베팅할 때마다 카운트를 하여 베팅을 몇 번째 줄에 하는지를 알 수 있게 합니다.
'+'버튼을 누르면 우선 betCoin에 1을 추가합니다.
만약 처음 누르는 거라면 베팅 값은 1이 될 것입니다.
그 후 slotCount에 1을 추가해서 어느 라인에 베팅을 하는지 결정합니다.
다음으로 slotCount값으로 if문을 돌려 해당 라인에 베팅을 합니다.
slotCount값이 1이면 2번째 라인에, 2면 1번째 라인에, 그리고 3이면 3번째 라인에 베팅을 합니다.
각 라인에 bet1Coin, bet2Coin, bet3Coin 변수를 두어 라인마다 베팅되는 값을 따로 가지고 있습니다.
그리고 그 값을 UI상에 표시하여 사용자가 확인할 수 있도록 합니다.
여기서 확인할 부분은 slotCount가 3이 되어 else문으로 넘어갔을 때 slotCount = 0을 하여 다음에 '+'버튼을 눌렀을 때 다시 1로 돌아가도록 하였습니다.
다음으로 변수를 정의해 주겠습니다.
스크립트의 제일 위에 다음과 같이 변수들을 정의해 봅시다.
1
2
3
4
5
|
betCoin = 0
slotCount = 0
bet1Coin = 0
bet2Coin = 0
bet3Coin = 0
|
cs |
여기까지 작업하셨다면, 실행해 봅시다.
'+'버튼을 누를 때 위와 같이 작동한다면 정상 작동합니다.
오늘은 여기까지 진행하겠습니다.
다음엔 아마 '-'버튼을 진행하게 될 것 같습니다.
'맥스스크립트 심화' 카테고리의 다른 글
슬롯머신(5) (0) | 2019.09.30 |
---|---|
슬롯머신(4) (0) | 2019.09.26 |
슬롯머신(3) (0) | 2019.09.25 |
슬롯머신(2) (0) | 2019.09.24 |
Selection Filter확장 (0) | 2019.09.19 |
자식노드 선택(4) (2) | 2019.09.18 |
자식노드 선택(3) (0) | 2019.09.17 |
자식노드 선택(2) (0) | 2019.09.16 |