Loader

Shoutbox

Variable.

Publicado por Taki-A, Noviembre 22, 2018, 04:15:55 PM

Tema anterior - Siguiente tema

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

Noviembre 22, 2018, 04:15:55 PM Ultima modificación: Noviembre 22, 2018, 09:57:16 PM por Taki-A
Alguien podría orientarme? Quisiera saber si una variable "vida" a aumentado su valor
Ejemplo. Digamos tomo una posion que me restaura 25ps y crear un objeto que sea una animación de recuperar salud. Pero quisiera que este objeto con la animación apareciera siempre y cuando la variable "vida" aumente su valor.
Y si siempre vida += (cualquier número positivo) aparezca este objeto.
Por favor esto me confunde.

¿Qué versión de GameMaker estás usando?
Recuerda poner el ícono del GM correspondiente en el post para que los usuarios te puedan ayudar mejor, al igual que un título algo más descriptivo, con solo decir "variable" no se dice mucho.

Ahora al tema, según lo que he entendido podrías simplemente tener el objeto de animación creado desde el inicio, pero hacerlo visible solamente cuando aumentes el valor de la vida.
[gml]
///En el evento en que vayas a aumentar la vida
vida += 10;
with obj_animacion {
    visible = true;
    image_index = 0;
}
[/gml]
[gml]
///En el evento Animation end del objeto animación
visible = false;
[/gml]
alaberga regué el café.

BA:STFW&RTFM

Noviembre 22, 2018, 09:36:38 PM #2 Ultima modificación: Noviembre 22, 2018, 09:43:13 PM por dixon2010
Hola:

En palabras simples:
si el player choca con el objeto que sube las vidas entonces que se sume una vida.
En otras palabras:
si el objeto player colisiona con el objeto que aumenta las vidas entonces que se ejecute vidas+=1
En otras palabras:
si el player : codigo para el [EVENT STEP]del objeto player:
colisiona: place_meeting, place_empty, place_free
con el objeto que sube las vidas: object1, object2, object3 etc....
que se sume una vida: vidas+=1
En otras palabras: para este caso llamaremos object1 al objeto que sube las vidas.
Codigo para el [EVENT STEP] del objeto player:

///si el player colisiona con el objeto vidas que se sume una vida
if(place_meeting(x,y,object1))vidas+=1

Ahora, necesitas crear una animación cuando se aumente la vida?, pues..

En palabras simples:
Si el objeto player colisiona con el objeto vidas entonces que se sume una vida y se inicie la animación.

En otras palabras:
para el evento [EVENT STEP] del objeto player:
if(place_meeting(x,y,object1)){vidas+=1; //iniciar animación}

El código anterior es para que tengas una pequeña idea de programación ahora me dices que el objeto que ejecuta la animación debe ser creado cuando la variable vidas esté aumentando. Entonces debemos hacer esto:

Estamos usando 3 objetos:
1.el player,
2.el objeto que aumenta las vidas y : lo llamaremos object1 para este ejemplo
3.el objeto que ejecuta la animación.: lo llamaremos obj_animacion para este ejemplo:

entonces colocamos en [EVEN STEP] del objeto player:

if(place_meeting(x,y,object1)){instance_create(x,y,obj_animacion);vidas+=1}


:-[
Dios nos ayuda y nos da sabiduría para vivir. Cáda código es una obra maestra que hay que respetar aunque exista un código mas eficiente y sencillo.

Hola gracias por responder creo que tu código es el que más se acerca a lo que quería hacer perdón. No me fijé en eso y tienes razón.   :-[
Cita de: NiuWeb en Noviembre 22, 2018, 09:08:38 PM
¿Qué versión de GameMaker estás usando?
Recuerda poner el ícono del GM correspondiente en el post para que los usuarios te puedan ayudar mejor, al igual que un título algo más descriptivo, con solo decir "variable" no se dice mucho.

Ahora al tema, según lo que he entendido podrías simplemente tener el objeto de animación creado desde el inicio, pero hacerlo visible solamente cuando aumentes el valor de la vida.
[gml]
///En el evento en que vayas a aumentar la vida
vida += 10;
with obj_animacion {
    visible = true;
    image_index = 0;
}
[/gml]
[gml]
///En el evento Animation end del objeto animación
visible = false;
[/gml]

Gracias por tomarte el tiempo para responder :) aunque lo que yo en verdad quería hacer era ahorrar código en ese objeto de animación del personaje recuperando vida. Y como es un RPG le eh puesto muchas formas de recuperar vida. Posiones, objetos, habilidades. Y quería un objeto que detecte cuando el jugador ah recuperado vida no importa cantidad y haga una animación.  :-[ :-[
Cita de: dixon2010 en Noviembre 22, 2018, 09:36:38 PM
Hola:

En palabras simples:
si el player choca con el objeto que sube las vidas entonces que se sume una vida.
En otras palabras:
si el objeto player colisiona con el objeto que aumenta las vidas entonces que se ejecute vidas+=1
En otras palabras:
si el player : codigo para el [EVENT STEP]del objeto player:
colisiona: place_meeting, place_empty, place_free
con el objeto que sube las vidas: object1, object2, object3 etc....
que se sume una vida: vidas+=1
En otras palabras: para este caso llamaremos object1 al objeto que sube las vidas.
Codigo para el [EVENT STEP] del objeto player:

///si el player colisiona con el objeto vidas que se sume una vida
if(place_meeting(x,y,object1))vidas+=1

Ahora, necesitas crear una animación cuando se aumente la vida?, pues..

En palabras simples:
Si el objeto player colisiona con el objeto vidas entonces que se sume una vida y se inicie la animación.

En otras palabras:
para el evento [EVENT STEP] del objeto player:
if(place_meeting(x,y,object1)){vidas+=1; //iniciar animación}

El código anterior es para que tengas una pequeña idea de programación ahora me dices que el objeto que ejecuta la animación debe ser creado cuando la variable vidas esté aumentando. Entonces debemos hacer esto:

Estamos usando 3 objetos:
1.el player,
2.el objeto que aumenta las vidas y : lo llamaremos object1 para este ejemplo
3.el objeto que ejecuta la animación.: lo llamaremos obj_animacion para este ejemplo:

entonces colocamos en [EVEN STEP] del objeto player:

if(place_meeting(x,y,object1)){instance_create(x,y,obj_animacion);vidas+=1}


:-[

Powered by EzPortal