2016-06-02 3 views
1

내가 GML을 사용하여 객실의 풀에서 방을 선택하는 게임을 만들려고 노력하고있어,하지만 난 다음 오류 얻을 :GML의 room_goto() 오류, 기대 수

FATAL ERROR in action number 3 of Create Event for object obj_control:

room_goto argument 1 incorrect type (5) expecting a Number (YYGI32) at gml_Object_obj_control_CreateEvent_3 (line 20) - room_goto(returnRoom)

pool = ds_list_create() 

ds_list_insert(pool, 0, rm_roomOne) 
ds_list_insert(pool, 1, rm_roomTwo) 
ds_list_insert(pool, 2, rm_roomThree) 
ds_list_insert(pool, 3, rm_roomFour) 

var returnIndex; 
var returnRoom; 

returnIndex = irandom(ds_list_size(pool)) 
returnRoom = ds_list_find_value(pool, returnIndex) 

if (ds_list_size(pool) == 0){ 
room_goto(rm_menu_screen) 
}else{ 
room_goto(returnRoom) 
} 

I 돈을 숫자를 기다리고 있다는 오류 메시지가 표시됩니다.

답변

0

이 참 이상해 ... 나는이 실제로 작동한다고 생각합니다 ..하지만 지금 당신은 또한 "선택"을 사용하여이 문제를 해결 할 수 있습니다 들어

을 :(테스트 주위에 GM이 없습니다.이 목록을 (저장 . 따라서이

기본적으로
room_goto(choose(rm_roomOne, rm_roomTwo, rm_roomThree, rm_roomFour)); 

choose는 경우 갈 수있는 가장 좋은 방법을 정확하게 당신이 찾고있는이되지 않을 수 있습니다 않습니다) 메모리에 상주 - 당신이 그것을 삭제하여 목록을 정리하지 않을 때문에, 메모리를 저장 그래도 그룹의 항목을 다시 사용하고 있습니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 arently choose는 게임을 다시 시작할 때 같은 값을 반환합니까? – SneakyBomber

+0

그래, 몇 가지 다른 문제가 생겼어. 나는 새로운 질문에 그것을 게시 할 것이다. 다시 귀하의 도움에 감사드립니다! choose() 자체가 매력처럼 작동합니다! – SneakyBomber

+0

예, choose()는 랜덤 함수를 사용합니다. 게임이 다시 시작될 때마다 irandom()이 동일한 값을 반환하는 것과 같습니다. 이것은 "무작위 씨앗"과 관련이 있습니다. 문서의 무작위 기능을 확인하십시오. 완벽하게 설명하고 있으며, 매번 임의의 이벤트를 얻기 위해 특정 함수로 시드를 무작위 추출하는 방법을 설명합니다. –

관련 문제