问题是if-else gml,我在if和true中有一个条件,因此else情况一定不能输入,因此在这种情况下if和else在起作用,我不知道为什么。我有一个全局变量Turno。请检查代码。
当我确实单击图像时,如果turno为1,则检查turno是否为1,因此播放音频,否则执行切换条件,但是我的代码同时运行if和else case,我不知道为什么。
这是一个对象的代码,并且在同一对象中创建了一个全局变量
它是在创建事件中创建的。
Global.Turno = 1
这是“左键”事件。物体。
if(global.Turno == 1){
global.Turno = global.Turno + 1 ; //ahora toca turno dos
global.Logros = global.Logros + 1 ; // ya paso la prueba de turno uno
// aqui reproducir el audio MUYY BIENNN.
if(!audio_is_playing(snd_muy_bien)){
audio_play_sound(snd_muy_bien,100,false);
}
}else{
switch(global.Turno){
case 1: {
if( !audio_is_playing(snd_encuentra_la_cama) ){
audio_play_sound(snd_encuentra_la_cama,100,false);
}
break;
}
case 2 : {
if( !audio_is_playing(snd_encuentra_el_televisor) ){
audio_play_sound(snd_encuentra_el_televisor,100,false);
}
break;
}
case 3 : {
if( !audio_is_playing(snd_encuentra_el_zapato) ){
audio_play_sound(snd_encuentra_el_zapato,100,false);
}
break;
}
case 4 : {
if( !audio_is_playing(snd_encuentra_el_nino) ){
audio_play_sound(snd_encuentra_el_nino,100,false);
}
break;
}
case 5 : {
if( !audio_is_playing(snd_encuentra_el_ropero) ){
audio_play_sound(snd_encuentra_el_ropero,100,false);
}
break;
}
case 6 : {
if( !audio_is_playing(snd_encuentra_el_perro) ){
audio_play_sound(snd_encuentra_el_perro,100,false);
}
break;
}
case 7 : {
if( !audio_is_playing(snd_encuentra_la_ventana) ){
audio_play_sound(snd_encuentra_la_ventana,100,false);
}
break;
}
default: {
if(!audio_is_playing(snd_ya_has_ganau_felicidades)){
audio_play_sound(snd_ya_has_ganau_felicidades,100,false);
}
}
}
}
没有错误,问题就在于两者是否都起作用。我不知道为什么。如果您需要更多代码,请告诉我。
答案 0 :(得分:0)
我同意@YellowAfterLife,但我想指出一下,您的开关盒确实有默认设置
default: {
if(!audio_is_playing(snd_ya_has_ganau_felicidades)){
audio_play_sound(snd_ya_has_ganau_felicidades,100,false);
}
这意味着无论如何都可以播放音乐。另一个原因可能是可变作用域,尽管我不认为这是问题背后的主要原因。您可以通过如下方式将++变量移到底部来检查是否是这样:
if(global.Turno == 1){
if(!audio_is_playing(snd_muy_bien)){
audio_play_sound(snd_muy_bien,100,false);
}
global.Turno = global.Turno + 1 ; //ahora toca turno dos
global.Logros = global.Logros + 1 ; // ya paso la prueba de turno uno
}