Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: lfcesar en Noviembre 04, 2011, 01:27:08 AM

Título: switch ayuda
Publicado por: lfcesar en Noviembre 04, 2011, 01:27:08 AM
evento crear
[gml]bonuscrear=ceil(random(5));[/gml]

evento Animation end

[gml]switch(bonuscrear)
{
   case 1:
   instance_create(x,y,B_M)
   break;
   case 2:
   instance_create(x,y,B_M)
   break;
   case 3:
   instance_create(x,y,B_M)
   break;
  etc,etc xD
}[/gml]

pero me sale que bonuscrear no existe xq? si esta en el mismo objeto
Título: Re: switch ayuda
Publicado por: MaanuRP en Noviembre 04, 2011, 01:56:36 AM
Mmm deberia andar, revisa bien si la variable esta bien escrita en ambos eventos, porque por mas que el sprite tenga 1 sprite, deberia funcionar.
Título: Re: switch ayuda
Publicado por: elviskelley en Noviembre 04, 2011, 07:49:31 AM
me a ocurrido algo parecido y resulto ser la fuente del texto en un caso en otro un acento, pero para evitarlo as copy en el nombre de la variable en create y paste en el switch. si aun asi te da el error es un bug del game maker. o algun otro codigo u event que esta afectando el juego.
Título: Re: switch ayuda
Publicado por: lfcesar en Noviembre 04, 2011, 06:29:54 PM
YA LO REVISE SON EL MISMO NOMBRE
Título: Re: switch ayuda
Publicado por: Wadk en Noviembre 04, 2011, 06:37:34 PM
Primero que nada, deber?as poner esto en create, en vez de lo que ten?s ahora:
[gml]bonuscrear = floor(random(5)) + 1;[/gml]
Eso es porque random puede devolver 0, y ceil(0) es 0.
Como norma general, random siempre deber?a usarse junto con floor. Nunca con ceil ni round.

Y segundo, la raz?n puede ser que el evento animation end se est? ejecutando antes que create. No s? si es posible, pero no se me ocurre otra raz?n. Prob? poner esto al principio de animation end:
[gml]if (!variable_local_exists("bonuscrear")) {
    exit;
}[/gml]