안녕하세요.
애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.
오늘도 역시 지난번에 이어 슬롯머신을 계속 진행하겠습니다.
우선은 플레이어가 가지고 있는 코인을 표시하는 것을 만들겠습니다.
'+'버튼 왼쪽에 0으로 표시되어 있는 숫자에 플레이어의 코인을 표시하겠습니다.
지금까지 작업한 스크립트를 열고 'on slot_roll mbuttondown pos do()'을 다음과 같이 수정해 주세요.
1
2
3
4
5
|
on slot_roll mbuttondown pos do
(
playerCoin += 10
coin_lab.text = playerCoin as string
)
|
cs |
이상태로 실행하면 coin_lab의 출력물이 너무 왼쪽으로 치우쳐서 나오기 때문에 위치 조정을 하겠습니다.
1
|
label coin_lab "0" pos:[15,110]
|
cs |
마우스 미들버튼으로 코인을 늘여 봤습니다.
원하는 대로 들어 갔네요. ㅎㅎ
이상태에서 '+', '-'버튼을 눌러도 플레이어의 코인이 줄어들거나 늘어나지 않습니다.
내부적으로는 값이 변하지만 UI상으로 표시하지 않았기 때문에 그렇습니다.
이 부분을 'on add_btn pressed do()'와 'on sub_btn pressed do()'를 수정하여 고치겠습니다.
'on add_btn pressed do()'의 'playerCoin -= 1' 다음과 'on sub_btn pressed do()'의 'playerCoin += 1'의 다음에
아래의 내용을 추가합니다.
1
|
coin_lab.text = playerCoin as string
|
cs |
이제 정상적으로 coin_lab에 표시되는 playerCoin의 값이 나옵니다.
다음으로 'Run'버튼을 누르고 결과에 따라 Coin을 벌거나 잃는 것을 만들겠습니다.
실제로 가감의 로직을 짜기 전에 배열을 이용해 각 슬롯에 적혀있는 값을 저장하는 배열 변수를 만들겠습니다.
물론 슬롯 label의 Text값을 읽어서 처리할 수 있지만 값을 사용할 때는 가급적이면 변수에 저장하고 사용하는 것을 권장하겠습니다.
스크립트의 상단 변수 정의 부분에 다음을 추가해줍니다.
1
|
slotNumArry = #(#(0, 0, 0), #(0, 0, 0), #(0, 0, 0)
|
cs |
사용될 배열은 2중 배열이고 총 9개가 필요하다는 것을 알고 있기 때문에 위와 같이 작업했습니다.
그다음으로 'Run' 버튼을 눌렀을 때 이 배열에 값이 입력되게 하야 합니다.
'on run_btn pressed do()' 이벤트를 다음과 같이 수정해 줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
|
on run_btn pressed do
(
for i = 1 to 3 do
(
for j = 1 to 3 do
(
slotNum = random 1 9
(execute("slot_roll.slot" + (i as string) + (j as string) + "_lab")).text = " " + (slotNum as string)
slotNumArry[i][j] = slotNum
)
)
)
|
cs |
지금 상태에서는 실행을 해도 딱히 바뀐 것을 알 수 없습니다.
현재는 각 행에 배팅한 금액이 변수에 저장되기는 했지만 나중에 for문을 사용해 반복 작업을 하기 때문에 편의를 위해서 배열로 바꾸는 게 좋을 것 같습니다.
스크립트 상단의 'bet1Coin = 0', 'bet2Coin = 0', 'bet3Coin = 0'를 다음과 같이 배열 변수로 통합하겠습니다.
1
|
betLineCoin = #(0, 0, 0)
|
cs |
이전에 만들어 놓은 변수가 삭제됐기 때문에 스크립트를 실행하면 오류가 뜰 것입니다.
'on add_btn pressed do()' 이벤트와 'on sub_btn pressed do()' 이벤트 안에 있는 bet1Coin, bet2Coin, bet3Coin을
betLineCoin[1], betLineCoin[2], betLineCoin[3]으로 바꿔 주세요.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
|
.
.
.
if(slotCount == 1) then
(
betLineCoin[1] += 1
bet1_lab.text = (betLineCoin[1] as string)
)
else if (slotCount == 2) then
(
betLineCoin[2] += 1
bet2_lab.text = (betLineCoin[2] as string)
)
else
(
betLineCoin[3] += 1
bet3_lab.text = (betLineCoin[3] as string)
slotCount = 0
)
.
.
.
if(slotCount == 1) then
(
betLineCoin[1] -= 1
bet1_lab.text = (betLineCoin[1] as string)
slotCount -= 1
)
else if (slotCount == 2) then
(
betLineCoin[2] -= 1
bet2_lab.text = (betLineCoin[2] as string)
slotCount -= 1
)
else
(
betLineCoin[3] -= 1
bet3_lab.text = (betLineCoin[3] as string)
slotCount = 2
)
|
cs |
오늘 끝내고 싶었는데 실제 배팅의 결과를 내는 작업은 다음 시간으로 미뤄야 할 것 같습니다.
다음에는 꼭 끝내도록 하죠. ㅎㅎ
'맥스스크립트 심화' 카테고리의 다른 글
바이패드 Bip파일 불러오거나Bip파일과 XML파일 불러오기(3) (0) | 2021.03.11 |
---|---|
바이패드 Bip파일 불러오거나Bip파일과 XML파일 불러오기(2) (2) | 2021.03.10 |
바이패드 Bip파일 불러오거나Bip파일과 XML파일 불러오기(1) (3) | 2021.03.10 |
슬롯머신(6) (0) | 2019.10.01 |
슬롯머신(4) (0) | 2019.09.26 |
슬롯머신(3) (0) | 2019.09.25 |
슬롯머신(2) (0) | 2019.09.24 |
슬롯머신(1) (0) | 2019.09.23 |