我该怎么办,如果其他方法在gml中不起作用?

时间:2019-06-25 01:09:59

标签: game-maker game-maker-language

问题是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);
   }
 }
  }


 }

没有错误,问题就在于两者是否都起作用。我不知道为什么。如果您需要更多代码,请告诉我。

1 个答案:

答案 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
 }