Junio 19, 2013, 06:27:32 am

Autor Tema: Que tiene de malo este codigo  (Leído 348 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jefferson940

  • Asiduo
  • *
  • Puntos: 0
  • Mensajes: 105
  • Sexo: Masculino
  • El putas
    • Ver Perfil
Que tiene de malo este codigo
« en: Diciembre 21, 2011, 09:43:05 pm »
tengo este codigo en el step de mi personaje,

if vida<=0 and estado<>"muerto"
    {estado="muerto";
     alarm[0]=30;
     effect_create_above(1,x,y,1,c_white);}

no se por q este codigo se convierte en un ciclo si le estoy cambiando el estado q es diferente a "muerto" a que si sea "muerto".
eso, segun yo, deberia dejar de repetir este ciclo
No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.

Desconectado MaanuRP

  • Okupa
  • *
  • Puntos: 20
  • Mensajes: 887
  • Sexo: Masculino
  • MaanuRP! Game Maker 8!
    • Ver Perfil
Re: Que tiene de malo este codigo
« Respuesta #1 en: Diciembre 21, 2011, 10:34:56 pm »
Por lo que yo se, para decir: "Es distinto de:" se usa: != y no <> como en VB.

Desconectado jefferson940

  • Asiduo
  • *
  • Puntos: 0
  • Mensajes: 105
  • Sexo: Masculino
  • El putas
    • Ver Perfil
Re: Que tiene de malo este codigo
« Respuesta #2 en: Diciembre 21, 2011, 10:37:57 pm »
no me sirvio con !=

Desconectado MaanuRP

  • Okupa
  • *
  • Puntos: 20
  • Mensajes: 887
  • Sexo: Masculino
  • MaanuRP! Game Maker 8!
    • Ver Perfil
Re: Que tiene de malo este codigo
« Respuesta #3 en: Diciembre 21, 2011, 10:51:22 pm »
Revisaste las variables? Que la variable se ponga en "muerto" cuando debe estarlo?

Y porque preguntas si la vida es menor o igual a 0 y aparte si la variable esta en "muerto"? No pongas dos cosas iguales en un if porque muchas veces se te puede complicar encontrar el error.

Desconectado jefferson940

  • Asiduo
  • *
  • Puntos: 0
  • Mensajes: 105
  • Sexo: Masculino
  • El putas
    • Ver Perfil
Re: Que tiene de malo este codigo
« Respuesta #4 en: Diciembre 21, 2011, 11:12:22 pm »
el personaje tiene varios estados
cuando la vida llega a cero cambia a estado="muerto" precisamente para q no se me forme un ciclo.

revise, y si, el estado queda en "muerto" y la vida es <=0
pero aun asi me sigue creando el ciclo, lo se por q me crea el efecto constantemente y no me ejecuta el codigo de la alarm[0]

Desconectado MaanuRP

  • Okupa
  • *
  • Puntos: 20
  • Mensajes: 887
  • Sexo: Masculino
  • MaanuRP! Game Maker 8!
    • Ver Perfil
Re: Que tiene de malo este codigo
« Respuesta #5 en: Diciembre 22, 2011, 12:35:00 am »
Hasta que la vida no sea mayor a 0 o su estado cambie, la alarma va a ser 30 siempre, ya que se crea el bucle. Entiendes?

Desconectado jefferson940

  • Asiduo
  • *
  • Puntos: 0
  • Mensajes: 105
  • Sexo: Masculino
  • El putas
    • Ver Perfil
Re: Que tiene de malo este codigo
« Respuesta #6 en: Diciembre 22, 2011, 01:39:42 pm »
pero si la condicion es q estado sea diferente a "muerto" para que se cumpla el codigo, y para q no se repita paso el estado a "muerto".

no se por q vuelve y repite el ciclo si ya cambie la condicion q era necesarioa

Desconectado elviskelley

  • Okupa
  • *
  • Puntos: 374
  • Mensajes: 1782
  • Sexo: Masculino
  • la vida te da todo lo que pidas.
    • Ver Perfil
    • http://ekgames.3a2.com/ una web dedicada a   los mejores tutoriales.
Re: Que tiene de malo este codigo
« Respuesta #7 en: Diciembre 22, 2011, 02:08:23 pm »
if vida<1 and (estado!="muerto")
    {
    alarm[0]=3*room_speed;
    effect_create_above(1,x,y,1,c_white);
    estado="muerto";
    }
Por muy dificil que parece, todo pasa.
mi web Elvis.Kelley.Games
Manual Game maker PDF



Desconectado Wadk

  • In order to see...
  • Administrador
  • Legendario
  • *
  • Puntos: 152
  • Mensajes: 2263
  • Sexo: Masculino
  • ... you must close your eyes.
    • Ver Perfil
Re: Que tiene de malo este codigo
« Respuesta #8 en: Diciembre 22, 2011, 03:51:38 pm »
Elvis, tu código es más o menos equivalente.

El problema parece ser que el estado después de cambiar a "muerto" cambia a otra cosa y enseguida el código vuelve a ejecutarse. Yo pondría el código así:
if (vida <= 0 && estado != "muerto") {
    show_message("estado = '" + estado + "'");
    estado = "muerto";
    alarm[0] = 30;
    effect_create_above(1, x, y, 1, c_white);
}
Ahí te podés fijar cuál es el valor de estado cuando debería ser "muerto".

Desconectado jefferson940

  • Asiduo
  • *
  • Puntos: 0
  • Mensajes: 105
  • Sexo: Masculino
  • El putas
    • Ver Perfil
Re: Que tiene de malo este codigo
« Respuesta #9 en: Diciembre 22, 2011, 04:29:43 pm »
Gracias a ambos por responder, la verda es q ensaye ambas respuestas y sigue en lo mismo, no se de donde mas buscarle.

Desconectado MatuX

  • Adicto
  • *
  • Puntos: 41
  • Mensajes: 398
  • Sexo: Masculino
  • MX-Games
    • Ver Perfil
    • matuxgames
Re: Que tiene de malo este codigo
« Respuesta #10 en: Diciembre 23, 2011, 01:49:31 pm »
entonces fíjate que capas ese no es tu problema, tal ves en otro lado la condición de "muerto" sea otra que haces que te genere ese ciclo infinito seguro, en que parte lo pusiste?
La cosa es que,.... no tengo la menor idea.

http://matuxgames.blogspot.com/