0

问题是 gml 的 if - else ,我在 if 中有一个条件并且它是 true ,所以 else 情况不能输入,所以在这种情况下 if 和 else 工作我不知道为什么。我有一个全局变量 Turno。请检查代码。

当我单击图像时,它会检查 turno 是否为 1,如果 turno 为 1,则播放音频,否则执行 switch 案例,但我的代码在 if 和 else 案例中都有效,我不知道为什么。

这是一个对象的代码,并且在同一个对象中创建了一个全局变量,例如

它是在创建事件中创建的。

   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);
   }
 }
  }


 }

没有错误,问题是两者都适用于 IF 和 ELSE 情况。我不知道为什么谢谢。如果你们想要更多代码,请告诉我 THNAKS。

4

1 回答 1

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
 }
于 2019-07-08T05:31:18.980 回答