2016-06-04 4 views
1

게임을 시작한 후 45 개 단계 로딩 화면으로 돌아가 다음 게임을 무작위로 설정합니다. 그래서 알람에서 [0] 다음 코드는 활성화 :GML 알람 이벤트가 두 번째로 작동하지 않습니다.

randomize(); 
chosenRoom = choose(rm_roomOne, rm_roomTwo, rm_roomThree, rm_roomFour); 
room_goto(chosenRoom); 

여기 코드는 잘 처음으로 작동하지만,이 로딩 화면 방에 무작위로 선택된 방에서 다시 전환 될 때이 유지 및 실행되지 않습니다 다시 코드.

도움이 될 것입니다.

+0

어떻게 알람을 부르죠 [0]? 어떤 경우에 시작합니까? –

+0

컨트롤 개체에 알람 이벤트를 추가하기 만하면됩니다. 이것은 생성 이벤트와 다음 코드의 상기 부분 (물론 처음에만)을 실행하는 알람 [0] 이벤트 45 알람 [0]를 설정한다. 그래서 꽤 많이 loadingRoom -> 코드 실행 -> randomRoom -> loadingRoom -> 중지 – SneakyBomber

답변

1

이것은 바보처럼 들릴지 모르지만 알람이 사라진 후에 다시 알람을 설정하는 것을 기억 했습니까? 나는 이것을 여러 번 생각하지 않고 해냈다. 코드를 보지 않으면 알람이 울린 후 다시 설정되지 않는다고 가정하므로 다시는 작동하지 않습니다.

1

제어 객체가 "지속성"이라고 추측하므로 제어 객체는 한 번만 존재하며 영원히 남게됩니다 (따라서 룸을 swithcing 한 후에도) - 따라서 thie create 이벤트는 한 번만 발동됩니다 - 따라서 경보는 한 번만 설정됩니다 .

봅니다 컨트롤러의 이벤트 "룸 시작"에 코드를 이동하고 그것은 작동합니다.

0

event_perform(ev_alarm,0);을 사용할 수 있습니다.
여기서 코드는 경보 [0] 45 단계 후에 수행한다. 다시 45 단계 후에 알람 [0]을 트리거합니다. 단계 이벤트에 넣어야합니다. 그리고 생성 이벤트에서 대기 변수 및 시간을 0으로 초기화해야합니다. times는 반복하고 wait 이벤트 사이의 거리입니다.

if(wait == 45 && times !=2){ 
    event_perform(ev_alarm,0); 
    times++; 
    wait = 0; 
} 
else{ 
    wait++; 
} 
관련 문제