Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Jangse en Enero 19, 2014, 03:14:28 PM

Título: Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: Jangse en Enero 19, 2014, 03:14:28 PM
Pues eso...

Tengo realizado el típico código para esto. Es decir, tenemos 3 vidas y 100% de energía. Dependiendo el tipo de enemigo, uno resta energía y otro nos quita una vida por colisión.

Cuando la energía llega a cero nos restan una vida. Hasta que tenemos cero vidas y cero energía. Entonces mi código funciona bien. Pero el problema es este:

- Se da el caso que colisionamos con el enemigo que nos resta una vida con solo tocarnos. Entonces, se muestra cero vidas y en muchos casos 100% de energía o menos. Y claro, me gustaría que al llegar a cero vidas nos mostrara como un contador que fuera descendiendo la energía de golpe y acabara el juego.

No tiene mucho sentido tener cero vidas y con la barra de energía a tope ¿No?

Tengo este código en event Step:

if  lives := 0 then
    begin
        health := 0;
        show_message('Game Over. Puntos: ' + string(score));
        game_restart();
    end;



En el event Draw, esta el código que muestra los valores de Vida, Energía, Puntos, etc...

draw_text(view_xview[0]+32,view_yview[0]+440,'Energia: ' + string(health));
draw_text(view_xview[0]+32,view_yview[0]+460,'Vidas: ' + string(lives));



Tampoco entiendo por que la función draw_text tiene como argumento final string ¿No debería ser una variable numérica?
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: Daz en Enero 19, 2014, 03:16:20 PM
Preguntas y respuestas: qué es y cómo funciona - Leer antes de postear (http://www.comunidadgm.org/preguntas-y-respuestas/preguntas-y-respuestas-que-es-y-como-funciona-leer-antes-de-postear/)

Jangse, recuerda colocar el icono de la versión de GM que usas.
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: Jangse en Enero 19, 2014, 03:20:48 PM
Cita de: Daz en Enero 19, 2014, 03:16:20 PM
Preguntas y respuestas: qué es y cómo funciona - Leer antes de postear (http://www.comunidadgm.org/preguntas-y-respuestas/preguntas-y-respuestas-que-es-y-como-funciona-leer-antes-de-postear/)

Jangse, recuerda colocar el icono de la versión de GM que usas.

Oops! Se me había olvidado. Ya esta...
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: DEADOFALL en Enero 27, 2014, 03:16:05 AM
Bueno, centrándome en el código, la solución la veo en cambiar un poquito lo que tienes en el Step, por algo como esto:

if lives<=1
{
if lives!=0 {lives=0};
if healt!=0 {healt-=1} else {healt=0; show_message('Fin de Juego. Puntos: '+string(score)); game_restart}
};


El código en Draw no le he visto mal, de cualquier modo, y en cuanto a la pregunta del por qué del 'string' en la función draw_text, si solo fuese una variable numérica, no podrías añadir fácilmente cosas como - 'Vidas: '+string(vidas) -, es decir, puedes añadir textos y operaciones de variables en lugar de sólo números.

Saludos.
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: Jangse en Enero 27, 2014, 08:51:53 PM
Primero de todo gracias por el interés DEADOFALL. Pero no me ha funcionado el código.

Mira...en el evento step del personaje (aparte de los movimientos del mismo), tengo dos bloques de código:

if health = 0 {
    health = 100;
    lives -= 1;
    }


De inicio partimos con tres vidas (lives). Y energía (health) con 100 unidades. Cuando la energía llega a cero, nos restan una vida. Este código, entonces, funciona bien.

Pero lo que quería yo, es que al llegar a cero vidas el juego termine. Y si en ese momento, tenemos aún energía, que esta tome el valor de cero y se reinicie el juego. Entonces cree este código a continuación del otro:

if lives = 0 {
    health = 0;
    show_message('Game Over. Puntos: ' + string(score));
    game_restart();
    }


Y ahí tengo el problema...

Que la pantalla muestra (Por ejemplo):

Energía: 45
Vidas: 0

Y el juego se reinicia. Quiero que si tengo aún energía y cero vidas, que la energía se disminuya a cero. Y el juego comience.

El código en el step lo tengo así:

if health = 0 {
    health = 100;
    lives -= 1;
    }

   
if lives = 0 {
    health = 0; // ESTE VALOR DE CERO NUNCA SE LLEGA A MOSTRAR AUN CON CERO VIDAS. AHÍ ESTA EL PROBLEMA...
    show_message('Game Over. Puntos: ' + string(score));
    game_restart();
    }
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: DEADOFALL en Enero 28, 2014, 11:37:56 PM
Entiendo y es muy sencillo, el código que te he dado está y funciona bien, el problema es tu código que yo desconocía:

if health=0 {health = 100; lives -= 1};

Pues ese código nunca permite llegar a tener healt=0, así que, cámbialo por éste:

if healt=0 {if lives!=0 {lives-=1; healt=100}};

Este cambio en el código, añadido al código que ya te he cedido, debería funcionar.

Saludos.
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: vampy09 en Enero 29, 2014, 03:32:57 AM
Ampliando un poco lo que DEADOFALL explicó, string() es una función que permite convertir valores numericos a texto, permitiendo de esta manera concatenar una variable del tipo entera ( ej: 56, 23, - 3) o real ( 6.78, -489.65 ) con texto.

Ejemplo :

salud = 100; // declaracion y asignacion variable entera

draw_string(x, y, "P1 Salud: " + string(salud));// texto mostrado en pantalla >>> P1 Salud: 100
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: Jangse en Enero 29, 2014, 07:35:27 PM
Cita de: DEADOFALL en Enero 28, 2014, 11:37:56 PM
Entiendo y es muy sencillo, el código que te he dado está y funciona bien, el problema es tu código que yo desconocía:

if health=0 {health = 100; lives -= 1};

Pues ese código nunca permite llegar a tener healt=0, así que, cámbialo por éste:

if healt=0 {if lives!=0 {lives-=1; healt=100}};

Este cambio en el código, añadido al código que ya te he cedido, debería funcionar.

Saludos.

Me sabe mal dar tanto la lata con este tema. Pero hasta que no lo solucione no quiero seguir avanzando en el juego. Y eso que es un maze. De los mas sencillos y tal.

He probado tu código pero me pasa igual. Te pongo una captura de pantalla y puedes ver como con cero vidas, queda 88 de energía. Pero el juego se acaba. No me importa que quede 88 de energía. Pero de ser así, que el código lo ponga a cero.

(http://imagizer.imageshack.us/v2/800x600q90/713/fktp.png) (https://imageshack.com/i/jtfktpp)
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: TLT96 en Enero 29, 2014, 08:45:26 PM
Oye..... En realidad no veo el problema o.O, veamos por ejemplo, este codigo que estaba unos mensajes atras

if healt=0 {if lives!=0 {lives-=1; healt=100}};

Despues viene, este?
show_message('Game Over. Puntos: ' + string(score));

Por que no quitas la energia?
Energia=0

Oseaaa...

if healt=0
{if lives!=0
{lives-=1; healt=100 Energia=0
show_message('Game Over. Puntos: ' + string(score));}
}

Yo lo veo perfecto o.O
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: penumbra en Enero 29, 2014, 09:02:09 PM
Cita de: TLT96 en Enero 29, 2014, 08:45:26 PM
Yo lo veo perfecto o.O

:-\ No.

Esto NO ES una comparación.
if healt = 0        // Esto es una asignación, una asignación no debería usarse como condición aquí

ESTO SÍ ES una comparación.
if healt == 0        // Esto es una comparacion, el valor de healt no se altera, sólo se compara

No ví con detenimiento el código, sólo me llamó la atención cómo estás manejando los IF. Es muy probable que estos errores son los que estén provocando las fallas

En el primer caso, la variable healt (creo que se te refieres a "health") recibe el valor de cero, después el if evalúa la expresión, y como se encuentra con que es falsa (cero), el bloque if en realidad no se ejecuta.
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: Jangse en Enero 29, 2014, 09:09:09 PM
Creo que GM en los IFs le es igual que utilices el signo = o ==, ya que en ambos caso realiza la comparación. Es decir, un IF no asigna, solo compara.
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: Jangse en Enero 29, 2014, 09:14:22 PM
Cita de: TLT96 en Enero 29, 2014, 08:45:26 PM
Oye..... En realidad no veo el problema o.O, veamos por ejemplo, este codigo que estaba unos mensajes atras

if healt=0 {if lives!=0 {lives-=1; healt=100}};

Despues viene, este?
show_message('Game Over. Puntos: ' + string(score));

Por que no quitas la energia?
Energia=0

Oseaaa...

if healt=0
{if lives!=0
{lives-=1; healt=100 Energia=0
show_message('Game Over. Puntos: ' + string(score));}
}

Yo lo veo perfecto o.O

Tu código no marcha. Ya que se da el caso que nos quedamos a cero de energía y con dos vidas y el juego se reinicia.

Créeme que estoy probando todos los códigos y no va ninguno. Tengo la duda si el código que pone el resultado en el HUD puede ser un problema:

draw_text(view_xview[0]+32,view_yview[0]+440,'Energia: ' + string(health));

Ya que convierte la variable health en string. No sé si hay algún método para reflejar el valor de health en valor entero y no string. Pero la función draw_text no me lo permite.
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: penumbra en Enero 29, 2014, 09:31:32 PM
Cita de: Jangse en Enero 29, 2014, 09:09:09 PM
Creo que GM en los IFs le es igual que utilices el signo = o ==, ya que en ambos caso realiza la comparación. Es decir, un IF no asigna, solo compara.

El IF no compara ni asigna, el IF se limita a evaluar una expresión (ver si es falsa o verdadera).

http://gmc.yoyogames.com/index.php?showtopic=424410#entry3079434 (http://gmc.yoyogames.com/index.php?showtopic=424410#entry3079434)  si ves el tema "Checking Variable Comparisons" verás que también se hace la distinción entre = y ==

EDIT: Y bueno, es cierto lo que comentaste, game maker es bastante relajado en ese aspecto y al parecer deja usar = y == de igual manera en las comparaciones  XD
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: vampy09 en Enero 30, 2014, 12:39:04 AM
Prueba este codigo:

*Este codigo va en objeto que utilisas como controlador, ademas que el objeto debe ser "persistente".

Create Event
health = 100;
lives = 3;
// estas dos variables son globales ( aun cuando no llevan global. al inicio del nombre ) vienen "preconstruidas" dentro del GM, y al ser globales, cualquier objeto puede modificar su valor.

Step event
if ( health < 0 )
    {  health = 0; //evita que se muestren numeros negativos en el HUD
     }

if ( health = 0 )
    { lives -= 1;
       if ( lives = 0 )
          { show_message("Game Over. Puntos: " + string(score));
             game_end();   //o puedes usar game_restart();
          }
      else
          { health = 100;
            room_restart();
          }
   }


*Este codigo va en el objeto que utilisas como jugador

Collision Event
obj_enemigo_01     health - 100;    //obj_enemigo_01 es el objeto que utilisas como enemigo                                        //que resta una vida de un solo golpe

obj_enemigo_02   health - n    //colision para los enemigos que restan un poco de energia,                                                                                                                                       
//n representa la cantidad de energia que tu desees



Saludos !
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: Jangse en Enero 31, 2014, 07:27:35 PM
Nada. Voy probando todos los códigos pero ninguno hace lo que busco. Y creo, que se puede deber que el GM no refresca la variable con el nuevo dato que le damos. O que pasa tan rápido que no llega a actualizarla. De hecho, ya comente, que el debugger de GM no actualiza el health a cero cuando la vida llega a cero también.

Es tan sencillo que al mostrar cero vidas, la energía muestre también cero. Osea, si muestra cero vidas y tenemos, por ejemplo 63% de energía, que el juego antes de reiniciar, nos muestre cero vidas y cero energía. Y luego reinicie. Y no haga como hasta ahora, que muestra en pantalla cero vidas y 63% de energía y reinicia. Y lo he probado todo. Creo que hasta me a aumentado la cabeza de tanto pensar... >:( :D
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: penumbra en Enero 31, 2014, 10:08:11 PM
Lo que puedo decir, según mi insípida experiencia, estos errores son de lógica, no del GM. Digo, hay un 0.01% de Probabilidad de que sea un bug del GM y un 99.99% de que sea un error en el código que has escrito.

Sube tu archivo de GM y seguro damos con la solución
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: TLT96 en Enero 31, 2014, 11:41:16 PM
Cita de: Jangse en Enero 31, 2014, 07:27:35 PM
Nada. Voy probando todos los códigos pero ninguno hace lo que busco. Y creo, que se puede deber que el GM no refresca la variable con el nuevo dato que le damos. O que pasa tan rápido que no llega a actualizarla. De hecho, ya comente, que el debugger de GM no actualiza el health a cero cuando la vida llega a cero también.

Es tan sencillo que al mostrar cero vidas, la energía muestre también cero. Osea, si muestra cero vidas y tenemos, por ejemplo 63% de energía, que el juego antes de reiniciar, nos muestre cero vidas y cero energía. Y luego reinicie. Y no haga como hasta ahora, que muestra en pantalla cero vidas y 63% de energía y reinicia. Y lo he probado todo. Creo que hasta me a aumentado la cabeza de tanto pensar... >:( :D

Pero que Diablos?!?!!?! Oye, en definitiva el problema es codigo tuyo o.O, te molestaria subir el editable? Ya he visto mil de cosas que podrian funcionar O.o.... No te sientas obligado pero..... Creo que nunca lo acomodaras tu solo, subelo y lo pones en el tema o se lo das a alguien en quien confies :3 (Es el problema mas simple sin haber tenido resultados o.O)

EDIT:
Cita de: penumbra en Enero 31, 2014, 10:08:11 PM
Lo que puedo decir, según mi insípida experiencia, estos errores son de lógica, no del GM. Digo, hay un 0.01% de Probabilidad de que sea un bug del GM y un 99.99% de que sea un error en el código que has escrito.

Sube tu archivo de GM y seguro damos con la solución
No vi el comentario xDD, bueh, es lo que dije ;P
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: vampy09 en Febrero 01, 2014, 12:23:34 AM
Comparto la opinion de los compañeros: debe haber un error en la logica de tu codigo, que en el GM se traduce en que Eventos  pones las acciones.
Sube tal vez un editable sin sprites, ni backgrounds etc, solo lo necesario para que podamos ayudarte. Por que lo que tu deseas hacer en tu juego es posible.
Saludos !
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: Jangse en Febrero 01, 2014, 10:46:18 AM
Cita de: penumbra en Enero 31, 2014, 10:08:11 PM
Lo que puedo decir, según mi insípida experiencia, estos errores son de lógica, no del GM. Digo, hay un 0.01% de Probabilidad de que sea un bug del GM y un 99.99% de que sea un error en el código que has escrito.

Sube tu archivo de GM y seguro damos con la solución

Sí, no hay ningún problema. Si no lo he subido antes, no ha sido por miedo a que alguien copie el juego. De hecho, no deja de ser un borrador o prueba para ir aprendiendo las funciones y programación con GML. Y creo que hacer un juego de laberintos es idóneo para eso.

Es solamente el primer nivel y al pasarlo te enfrentas al boss o jefe de turno. El gráfico del jefe si lo he quitado por que me lo ha dibujado otra persona. En su lugar he puesto un gif de un sprite sheet. Cuando eliminas al jefe, no pasa nada por que no esta hecho el otro nivel.

Seguro que tendrá muchos fallos, al margen del que estoy comentando en este post. Pero el que mas me interesa ahora, es lo de lives y health.

También podéis comprobar que si os quedáis tres veces sin energía, el juego se acaba y en cambio marca una vida.
Y si os quedáis con cero vidas, puede ser que aún marque que tenéis energía. Que es lo que me da rabia.

Quiero, que cuando salga el show_message con game over, abajo marque 0 vidas 0 energía.

TECLADO:

Teclas cursor: Movimientos del personaje.
Barra espaciadora: Disparo.


Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: penumbra en Febrero 01, 2014, 08:26:01 PM
Listo. Lo que hacías primero era que cuando la salud llegaba a cero, se reiniciaba a 100 y restabas una vida
if (health == 0)  {
    health = 100;
    lives -= 1;
    }


Luego revisabas si el número de vidas era cero, para poner la salud también en cero, terminarr el juego y mostrar mensaje
if (lives == 0) {
    health = 0;
    show_message('Game Over');
    game_restart();
    }
       

No sabía que esto pasaba, pero me da la impresión ( a menos que otra cosa pase y yo lo ignore) que en cuanto terminas el juego, el evento DRAW no lee ya el valor de la variable health, que sí cambia en STEP a cero. El evento DRAW se ejecuta después que STEP, pero yo moví el código de terminar el juego a DRAW y hacía lo mismo, seguía mostrando el valor de healt mayor a cero. Se me hace normal no saber esto ya que hasta ahora en mi proyecto nunca he usado las funciones que terminan/reinician el juego  XD

Lo que hice fue editar un poco los IF que ajustan energía y vida. Y SOBRE TODO, mover el bloque que termina el juego ANTES del bloque que revisa vidas, para que si en STEP las vidas se acaban, dar oportunidad que se ejecute DRAW y esperar hasta el otro STEP para revisar que las vidas son cero y terminar el juego

Al principio de STEP

if (!health) and (!lives)                         //Si vidas y salud son cero
{
    show_message('Game Over');
    game_restart();
}



Al final de STEP
if (lives >= 1)               //Si tienes al menos una vida...
{
    if (health < 1)                   //... y se te acaba la salud                   
    {
        lives -= 1;
        health = 100;               //Quitar una vida y reiniciar la salud
    }
}
else   
    health = 0;                      // Si ya no te quedan vidas, la salud se acaba


Antes tenías healt = 0 en el bloque que terminaba el juego, eso hacía que nunca cambiara la energía a cero en DRAW, por eso lo saqué y lo puse en el último IF-ELSE


Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: Jangse en Febrero 01, 2014, 08:43:12 PM
penumbra, muchas gracias por tomarte la molestia de mirar el código. En parte funciona. Pero si te fijas, la energía nunca llega a cero. Me refiero cuando te tocan esas serpientes verdes. Se queda en 1 y ya no descuenta mas vidas. De todas formas, ahora me mirare bien tus correcciones y voy a ver si puedo solucionar eso  :)
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: penumbra en Febrero 01, 2014, 08:48:04 PM
En el objeto Héroe, en la colisión contra las serpientes, agregué una condición extra al IF mientras trasteaba con tu código, quita esa condición extra y listo

if (invencible == false) and (obj_Control.health > 1)

lo cambias a

if (invencible == false)

se me había olvidado   :-[ Lo acabo de probar y funciona, las serpientes me mataron por completo
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego[SOLUCIONADO]
Publicado por: Jangse en Febrero 01, 2014, 09:00:21 PM
Cita de: penumbra en Febrero 01, 2014, 08:48:04 PM
En el objeto Héroe, en la colisión contra las serpientes, agregué una condición extra al IF mientras trasteaba con tu código, quita esa condición extra y listo

if (invencible == false) and (obj_Control.health > 1)

lo cambias a

if (invencible == false)

se me había olvidado   :-[ Lo acabo de probar y funciona, las serpientes me mataron por completo


¡¡¡ POR FIN !!!  :D Ahora esto si funciona al 100%. Muchas gracias de nuevo por tu ayuda.

Yo pensaba que dentro del step se podría poner el código en el orden que quisiéramos. Pero veo que no. Ahora me estudiare bien el código para encontrar su lógica.

Tampoco conocía que esta expresión !health era lo mismo a poner health == 0.

Y un apunte mas...en este código tuyo pones al obj_Control delante de la variable. Pero no es necesario ¿Verdad? Por que son variables del propio GM ¿No?

if (obj_Control.lives >= 1)
{
    if (obj_Control.health < 1)
    {
        obj_Control.lives -= 1;
        obj_Control.health = 100;
    }
}
else   
    obj_Control.health = 0;


Bueno, un saludo. Ya posteare el juego cuando lo tenga acabado. Aunque me queda un mundo para aprender...jejeje.
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: penumbra en Febrero 01, 2014, 09:11:43 PM
De nada, es bueno saber que ya funciona.

Cita de: Jangse en Febrero 01, 2014, 09:00:21 PM
Tampoco conocía que esta expresión !health era lo mismo a poner health == 0.

!algo es una de mis expresiones favoritas, pero para mi sorpresa...

He hecho pruebas en GM:S y ahora no me deja usar !health, sino que forzosamente tengo que usar (healt == 0). Escribo esto como aviso o por si a alguien sí le funciona me diga cómo.   >:(

Y sí, todo afecta en STEP, todo está "vivo". Si cambias una variable y más adelante, en el mismo evento hay decisiones basadas en su valor, el cambio les afecta
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: vampy09 en Febrero 02, 2014, 02:23:30 AM
Ampliando la respuesta de penumbra
El problema era que tu codigo siempre mostraba algun valor en la parte de ENERGIA cuando la caja de texto GAME OVER aparecia.
Error se daba en esta parte del codigo:

else
       {
         show_message("Game Over");
         restart_game();
        }
Osea "congelar" (freeze) el juego mientras que se muestre la caja de texto con el texto
"GAME OVER" hasta que se presione el boton OK de la caja de texto, cuando esto suceda( cklick en Ok) debe reiniciar el juego.
Entonces? ... Bueno que no estamos "dejando" que el GM muestre los valores que este paso le esta asignando a las variables health y lives, porque congelamos el juego y inmediatamente despues reiniciamos el juego.
El reiniciar el juego, evitaba que el evento DRAW (que va algo despues de ENDSTEP) dibuje en la pantalla el nuevo valor de health.
Por cierto me gusta mucho el efecto de "scalines" que aplicas al juego.
Saludos !
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: vampy09 en Febrero 02, 2014, 03:08:31 AM
obj_Control.lives = 1;
Significa que a la variable lives del obj_Control se le va ha asignar el valor de 1
El punto indica a que objeto se va aplicar la funcion o en este caso la modificacion de la variable lives, osea el punto indica que lo que esta del lado derecho del punto se le va ha aplicar a lo que este del lado izquierdo. 
Esto permite realizar cambios a variables, llamar funciones, comparar el valor de una variable etc. de un objeto dentro de otro. Es como un control remoto.
Es lo mismo que cuando usas Drag n Drop y de las tres opciones: self,other,object, seleccionaras object, luego sale un menu en el que debes escojer el objeto al que deseas que se le aplique la accion.
Se le conoce como operador selector de miembro/instancia
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: Jangse en Febrero 02, 2014, 12:25:36 PM
Cita de: vampy09 en Febrero 02, 2014, 03:08:31 AM
obj_Control.lives = 1;
Significa que a la variable lives del obj_Control se le va ha asignar el valor de 1


Bueno, yo a lo que me refiero es que sin poner delante de la variable lives el obj_control el código me funciona igual. Ya que tanto lives, health, score son tratadas por game maker como variables globales. Y en el step de nuestro personaje pongo así el código y me funciona perfectamente.
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: Jangse en Febrero 02, 2014, 12:32:19 PM
Cita de: vampy09
Osea "congelar" (freeze) el juego mientras que se muestre la caja de texto con el texto
"GAME OVER" hasta que se presione el boton OK de la caja de texto, cuando esto suceda( cklick en Ok) debe reiniciar el juego.

Sí, en post anteriores ya comenté que algo de esto podía suceder. Es decir, que no le diéramos tiempo al código para actualizar la variable.

Cita de: vampy09
El reiniciar el juego, evitaba que el evento DRAW (que va algo despues de ENDSTEP) dibuje en la pantalla el nuevo valor de health.
Esto es algo que debo aprender. Osea, ver la lógica de los Begin step, step y end step. Pero yo, en mi juego, no tengo definido ningún evento end step. Solo step a secas.

Cita de: vampy09Por cierto me gusta mucho el efecto de "scalines" que aplicas al juego.
Saludos !

Gracias. Me gustan los juegos con ese ambiente retro. Osea, que no se muestren con colores demasiado planos. Aunque no me gusta al 100% como queda. Ya trataré de mejorarlo. Ahora prefiero empaparme de código. El apartado gráfico lo encuentro mas sencillo.

Saludos!
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: vampy09 en Febrero 02, 2014, 07:33:36 PM
Cita de: Jangse en Febrero 02, 2014, 12:25:36 PM
Cita de: vampy09 en Febrero 02, 2014, 03:08:31 AM
obj_Control.lives = 1;
Significa que a la variable lives del obj_Control se le va ha asignar el valor de 1


Bueno, yo a lo que me refiero es que sin poner delante de la variable lives el obj_control el código me funciona igual. Ya que tanto lives, health, score son tratadas por game maker como variables globales. Y en el step de nuestro personaje pongo así el código y me funciona perfectamente.

No es que no entiendas como se usa el "." sino que utilizarlo con varibles como health o lives o en tu codigo es redundante. Tienes toda la razon! Disculpa es que aveces no leo con cuidado. :-P
Con respecto al los graficos, siendo sincero para mi es la primera vez que en juego de GM que veo este efecto. Se y entiendo que tu juego esta en una etapa beta y mucho del juego puede llegar a cambiar, pero en humilde mi opinion, esta efecto aporta mucha personalidad a los graficos y logra la sensacion de un arcade retro.
Saludos
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: 7sixerCF en Febrero 02, 2014, 08:59:03 PM
Man soy nuevo en game maker pero lo que yo aria seria al comienzo del juego crear una variable "Vidas" (ya que no conoso si GM biene con una variable predefinida para saber cuantas vidas tiene el pj) entonces cada vez que el personaje pierda una vida ademas tienes que agregar el evento de set var con el nombre vidas y -1 relativo, de esta forma se restara 1 vida a lo que ya tienes, ademas creas un objet que estara siempre en el juego con un test variable en el event step para comprobar si "Vidas" es igual a 0, si esto es haci pues agregas el codigo o action correspondiente para setear la energia a 0
Título: Re:Cuando queden 0 vidas que la energía se vacíe y termine el juego
Publicado por: Jangse en Febrero 02, 2014, 09:08:51 PM
Cita de: 7sixerCF en Febrero 02, 2014, 08:59:03 PM
Man soy nuevo en game maker pero lo que yo aria seria al comienzo del juego crear una variable "Vidas" (ya que no conoso si GM biene con una variable predefinida para saber cuantas vidas tiene el pj) entonces cada vez que el personaje pierda una vida ademas tienes que agregar el evento de set var con el nombre vidas y -1 relativo, de esta forma se restara 1 vida a lo que ya tienes, ademas creas un objet que estara siempre en el juego con un test variable en el event step para comprobar si "Vidas" es igual a 0, si esto es haci pues agregas el codigo o action correspondiente para setear la energia a 0

Gracias por el comentario. Pero gracias a la ayuda de los demás usuarios he podido solucionarlo. Y ahora prefiero dejarlo así. Saludos.