GML报警事件第二次无效

时间:2016-06-04 06:37:45

标签: gml

我有我的游戏设置,以便它启动并返回到加载屏幕房间45步,之后下一个房间被随机化。因此,在报警[0]时,以下代码激活:

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

这里的代码第一次运行正常,但是当它从随机选择的房间返回到加载屏幕房间时,它会停留在那里并且不会再次执行代码。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

这可能听起来很愚蠢,但你还记得在它关闭后再次设置闹钟吗?我知道我已经多次这样做而没有想到。在没有看到你的代码的情况下,我认为在闹钟响起后它没有被重新设置,所以它不会再次出现。

答案 1 :(得分:1)

我猜测控制对象是"持久的",因此控制对象只存在一次并且将永远保留(也在切换房间之后) - 因此创建事件只会被触发一次 - 因此警报只设置一次。

尝试将代码移至活动" Room Start"在你的控制器中它会工作。

答案 2 :(得分:0)

您可以使用event_perform(ev_alarm,0); 此处的代码在45步后执行报警[0]。经过45步后,它会触发报警[0]。请注意,您必须将其放入步骤事件中。并且您必须在创建事件中将等待变量和时间初始化为零。 times是重复,wait是事件之间的距离。

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