맥스스크립트 심화

슬롯머신(3)

스크립팅하는애님 2019. 9. 25. 16:57
728x90
반응형

안녕하세요.

애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.

오늘도 지난번에 이어 슬롯머신을 계속 진행하겠습니다.

 

오늘은 'Run'버튼을 작동하게 하겠습니다.

'Run'버튼이 눌리면 슬로의 숫자가 랜덤 하게 '0~9'까지 나오게 합니다.

물론 베팅의 결과를 계산하는것도 필요한데요, 이 부분은 나중에 천천히 해결해 나가겠습니다.

 

이전의 작업한 스크립트를 열고 on sub_btn pressed do () 밑에 다음과 같이 입력을 합니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
on run_btn pressed do
(
    slot11_lab.text = "  " + ((random 1 9) as string)
    slot12_lab.text = "  " + ((random 1 9) as string)
    slot13_lab.text = "  " + ((random 1 9) as string)
    slot21_lab.text = "  " + ((random 1 9) as string)
    slot22_lab.text = "  " + ((random 1 9) as string)
    slot23_lab.text = "  " + ((random 1 9) as string)
    slot31_lab.text = "  " + ((random 1 9) as string)
    slot32_lab.text = "  " + ((random 1 9) as string)
    slot33_lab.text = "  " + ((random 1 9) as string)        
)
 
cs

 

 

 

랜덤 함수를 사용하여 값들이 나오게 했습니다.

위와 같이 각각의 슬롯마다 따로 random 함수를  적용했지만 우리는 for문을 배웠으니까 for문으로 바꿔 보도록 하겠습니다.

그런데 슬롯의 lable이름이 1~9까지 되어 있는 것이 아니라 11~33까지로 되어 있어서 간단하게 for문으로 1~9까지 돌리는 방법은 사용하기 어렵습니다.(정확히는 귀찮습니다. ㅎㅎ)

그럼 for문 2개를 써서 2중으로 구현하는 방법을 사용해 보겠습니다.

다음과 같이 변경하고 실행해 봅시다.

 

1
2
3
4
5
6
7
8
9
10
on run_btn pressed do
(        
    for i = 1 to 3 do
    (
        for j = 1 to 3 do
        (
            (execute("slot" + (i as string) + (j as string) + "_lab")).text = "  " + ((random 1 9) as string)
        )
    )
)
 
cs

 

 

띠용~~ 에러가 뜨네요. ㅎㅎ

저도 에러가 떠서 놀랐습니다.

뭐가 잘못됐나 확인해 보니 문자열을 execute를 사용하여 실행할 수 있는 스크립트 형태로 바꾼다 해도 인식을 못하는 문제 가 있습니다.

처음 빨간색 글자를 훑어 보면 'line: 87'부터 문제가 있답니다.

이래저래 확인을 해본결과 execute로 생성한 lable들이 undefined로 나오는 것을 확인하니 변수의 영역과 관련된 것 같습니다.

원인을 정확하게 모르겠지만 이미 실행되어 메모리상에 UI가 올라 갔을테니 어떤 UI인지 명확하게 해 주면 해결할 수 있습니다.

(사족이지만 format문을 사용하거나 변수라면 변수의 값을 추적하여 에러를 확인하고 해결하는 기술을 터득하는 것은 매우 중요합니다.)

 

87번 라인을 다음과 같이 수정하고 실행하겠습니다.

 

1
(execute("slot_roll.slot" + (i as string) + (j as string) + "_lab")).text = "  " + ((random 1 9) as string)
cs

 

'slot_roll'을 추가하여 슬롯 UI의 영역을 확실히 해줍니다.

 

 

잘 돌아 가네요. ㅎㅎㅎ

 

오늘은 여기까지 진행하겠습니다.

다음에는 코인을 받고 '+', '-' 버튼을 이용하여 받은 코인의 수를 조정하는 것에 대해 알아보겠습니다.

728x90
반응형

'맥스스크립트 심화' 카테고리의 다른 글

바이패드 Bip파일 불러오거나Bip파일과 XML파일 불러오기(1)  (3) 2021.03.10
슬롯머신(6)  (0) 2019.10.01
슬롯머신(5)  (0) 2019.09.30
슬롯머신(4)  (0) 2019.09.26
슬롯머신(2)  (0) 2019.09.24
슬롯머신(1)  (0) 2019.09.23
Selection Filter확장  (0) 2019.09.19
자식노드 선택(4)  (2) 2019.09.18