안녕하세요.
애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.
오늘도 역시 지난번에 이어 슬롯머신을 계속 진행하겠습니다.
오늘은 코인을 넣고 '+', '-' 버튼과 연동하는 것을 만들어 보겠습니다.
우선은 플레이어의 코인을 받는 방법을 해결해 보겠습니다.
처음에는 키보드로 입력을 받을까 하다가 맥스 스크립트 UI내에서 키보드를 사용하는 방법을 찾을 수 없어서 마우스 미들 클릭으로 플레이어가 코인을 받을 수 있게 했습니다. ㅎㅎ
지금까지 작업한 스크립트 파일을 열고 다음과 같이 추가 해 줍시다.
스크립트의 제일 위쪽 부분에 위치한 변수의 선언부에 플레이어의 코인을 받을 수 있는 변수를 선언 하겠습니다.
1
|
playerCoin = 0
|
cs |
그리고 'on run_btn pressed do ()'의 다음에 새로이 다이얼로그 실행 함수를 넣겠습니다.
1
2
3
4
5
|
on slot_roll mbuttondown pos do
(
playerCoin += 10
format "playerCoin = %\n" playerCoin
)
|
cs |
이후 실행을 하면 마우스 미들 버튼을 클릭할 때마다 MAXScript Listener에서 playerCoin값이 10씩 증가하는 것을 볼 수 있습니다.
다음으로는 '+'버튼을 누를 때마다 playerCoin값이 1씩 줄어들고 playerCoin 값이 0이 되면 더 이상 눌러도 반응이 없도록 하겠습니다.
다음과 같이 on add_btn pressed do ()를 수정해 줍시다.
slotCount += 1 다음 줄에 playerCoin값에 1을 빼주는 스크립트를 추가하고,
블록 내의 스크립트를 if문으로 감싸 playerCoin값이 0보다 크면 블록을 실행하도록 합니다.
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
|
on add_btn pressed do
(
if(playerCoin > 0) do
(
betCoin += 1
slotCount += 1
playerCoin -= 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 |
이제 실행을 하면 '+'버튼을 눌러도 정상 작동하지 않습니다.
마우스 미들 버튼을 누르고 playerCoin에 10 값을 추가한 후에는 정상적으로 10까지는 베팅을 할 수 있습니다.
다음으로 '-'버튼과 playerCoin을 연동을 시키겠습니다.
내용은 '+'버튼과 비슷합니다.
단지 '-'버튼을 누를 때마다 playerCoin값이 1씩 더해지고 베팅 값을 저장하는 변수 betCoin의 값이 0이 되면 더 이상 작동하지 않는 것이 다릅니다.
다음과 같이 추가를 하고 스크립트를 실행해 보겠습니다.
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
|
on sub_btn pressed do
(
if(betCoin > 0) do
(
betCoin -= 1
playerCoin += 1
if(slotCount == 1) then
(
bet1Coin -= 1
bet1_lab.text = (bet1Coin as string)
slotCount -= 1
)
else if (slotCount == 2) then
(
bet2Coin -= 1
bet2_lab.text = (bet2Coin as string)
slotCount -= 1
)
else
(
bet3Coin -= 1
bet3_lab.text = (bet3Coin as string)
slotCount = 2
)
)
)
|
cs |
이제 '+', "-'버튼을 누르면 정상적으로 작동을 합니다.
지금까지 작업한 스크립트를 확인하면 다음과 같습니다.
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
betCoin = 0
slotCount = 0
bet1Coin = 0
bet2Coin = 0
bet3Coin = 0
playerCoin = 0
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
on add_btn pressed do
(
if(playerCoin > 0) do
(
betCoin += 1
slotCount += 1
playerCoin -= 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
)
)
)
on sub_btn pressed do
(
if(betCoin > 0) do
(
betCoin -= 1
playerCoin += 1
if(slotCount == 1) then
(
bet1Coin -= 1
bet1_lab.text = (bet1Coin as string)
slotCount -= 1
)
else if (slotCount == 2) then
(
bet2Coin -= 1
bet2_lab.text = (bet2Coin as string)
slotCount -= 1
)
else
(
bet3Coin -= 1
bet3_lab.text = (bet3Coin as string)
slotCount = 2
)
)
)
on run_btn pressed do
(
for i = 1 to 3 do
(
for j = 1 to 3 do
(
(execute("slot_roll.slot" + (i as string) + (j as string) + "_lab")).text = " " + ((random 1 9) as string)
)
)
)
on slot_roll mbuttondown pos do
(
playerCoin += 10
format "playerCoin = %\n" playerCoin
)
)
createdialog slot_roll width:140 height:140
|
cs |
오늘은 여기까지 작업을 하겠습니다.
다음에는 playerCoin값을 정상적으로 보여주고, 'Run'버튼을 눌렀을 때 슬롯의 성공과 실패에 대해 적용해 보겠습니다.
'맥스스크립트 심화' 카테고리의 다른 글
바이패드 Bip파일 불러오거나Bip파일과 XML파일 불러오기(2) (2) | 2021.03.10 |
---|---|
바이패드 Bip파일 불러오거나Bip파일과 XML파일 불러오기(1) (3) | 2021.03.10 |
슬롯머신(6) (0) | 2019.10.01 |
슬롯머신(5) (0) | 2019.09.30 |
슬롯머신(3) (0) | 2019.09.25 |
슬롯머신(2) (0) | 2019.09.24 |
슬롯머신(1) (0) | 2019.09.23 |
Selection Filter확장 (0) | 2019.09.19 |