Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Munguia en Noviembre 16, 2010, 11:08:17 PM

Título: como se define la salud m?xima(solucionado)
Publicado por: Munguia en Noviembre 16, 2010, 11:08:17 PM
tengo el siguiente problema con un juego (otro m?s),
es en relaci?n con la salud (health)
resulta que si tengo algo como el 90% y tomo un coraz?n que te devuelve un 25 suma 115%

quiero que la salud tenga por l?mite el l?gico 100%, que no se pase

gracias a todos por su paciencia

pura vida
Título: Re: como se define la salud m?xima
Publicado por: MatuX en Noviembre 16, 2010, 11:20:41 PM
una de las formas mas facil es a la variable la suiguiente:

supongamos que  la variable vida este en 90% no, y agarres un paquete que sume 25% ahora la suma de esto dos da 115% tal cual como dijiste. lo siguiente es asi: a esos 115 le restas 100 y el resultado restale a la variable vida,
ejem:  VIDA= VIDA-(VIDA- 100);
     
       VIDA= 115 -(115- 100)
       VIDA= 115 - 15
       VIDA= 100
espero que te sirva
 
 
Título: Re: como se define la salud m?xima
Publicado por: Tyranus en Noviembre 16, 2010, 11:37:28 PM
Cita de: MatuX en Noviembre 16, 2010, 11:20:41 PM
una de las formas mas facil es a la variable la suiguiente:

supongamos que  la variable vida este en 90% no, y agarres un paquete que sume 25% ahora la suma de esto dos da 115% tal cual como dijiste. lo siguiente es asi: a esos 115 le restas 100 y el resultado restale a la variable vida,
ejem:  VIDA= VIDA-(VIDA- 100);
     
      VIDA= 115 -(115- 100)
      VIDA= 115 - 15
      VIDA= 100
espero que te sirva
 
 
EDIT:

De hecho ese c?digo es err?neo, si VIDA vale menos que 100 la respuesta de Matux genera un error.

Ejemplo si VIDA = 70

VIDA = VIDA- (VIDA - 100)
VIDA = 70 - (70 - 100)
VIDA = 70 + 30
VIDA = 100

Lo que hace este codigo es que siempre tengas 100 de vida.
Es m?s se puede demostrar matematicamente:

VIDA = VIDA - (VIDA - 100)
VIDA = VIDA - VIDA + 100
VIDA = (VIDA - VIDA) + 100
VIDA = 0 + 100
VIDA = 100


_____________________________________________________________________________

Lo mejor es:

[gml]health = min(health,100)[/gml]

Saludos!
Título: Re: como se define la salud m?xima
Publicado por: Masterkey en Noviembre 17, 2010, 01:53:30 AM
He usado este simple c?digo para otras variables y no dudo que sirva para la vida: if health>100 health=100 : esto es una simple expresi?n matem?tica. Espero te sirva.
Título: Re: como se define la salud m?xima
Publicado por: MatuX en Noviembre 17, 2010, 03:16:28 AM
lo que pasa que este procedimiento lo tenes que llamar cuando la vida es mayor a 100  si vos tenes 70 y le suma 25 ese procedimiento no lo tenes que hacer
Título: Re: como se define la salud m?xima
Publicado por: DEADOFALL en Noviembre 17, 2010, 05:05:06 AM
Munguia, te dejo un ejemplo bien hecho, sin mas complicaci?n, el c?digo que regula eso esta en el objeto Jugador en la Colisi?n con el objeto Cura ;)
Por cierto, si que se complicaron XD
Título: Re: como se define la salud m?xima
Publicado por: brunoxzx en Noviembre 17, 2010, 06:40:12 PM
Se complican mucho la vida la respuesta correcta esta desde que tyranus escribi?, deber?a de haber una regla de solo responder cuando la soluci?n anterior no funcione.
Título: Re: como se define la salud m?xima
Publicado por: MatuX en Noviembre 17, 2010, 07:01:03 PM
pero con el debate y el ensayo y error se aprenden por que nadie nace sabiendo lenguaje de programacion y puedas mejorar la logica del algoritmo, por que en la programacion siempre se aprende algo nuevo, pero no te vallas a enojar mi intencion no es armar una pelea sino que me comprendas okis grax suerte
Título: Re: como se define la salud m?xima
Publicado por: ErikAdams en Noviembre 17, 2010, 07:10:35 PM
Otra opci?n, si tienes algun objeto que aumente la vida maxima es la siguiente:

en create:
[gml]vidamax=100[/gml]
y en el momento de coger el objeto que suma vida:
[gml]
vida+=25;
if vida>vidamax {vida=vidamax;}
[/gml]

De esta manera puedes hacer que el maximo de vida aumente aumentando la variable vidamax.

Espero que te haya servido :)

?Nos vemos!

Título: Re: como se define la salud m?xima
Publicado por: Munguia en Noviembre 17, 2010, 07:37:05 PM
Gracias a todos por su ayuda, muchas opciones me hicieron perder algunas neuronas, la opci?n de masterkey funca muy bien, gracias compas
Título: Re: como se define la salud m?xima(solucionado)
Publicado por: Genesis en Noviembre 19, 2010, 03:29:41 AM
La forma mas facil de hacerlo es esta.
Evento Create:
[gml]health=100
maxhealth=100[/gml]
Evento Step
[gml]if health>maxhealth then health=100 //Devuelve el valor maximo de la vida.[/gml]

entonces, si has hecho esto, la vida maxima posible va a ser 100(maxhealth) y si tu vida es mayor a 100, va a devolver el valor a la vida maxima posible, si tienes 90 y sumas 25, quedaria en 115, pero si tienes este codigo, te quedara en 100.
Título: Re: como se define la salud m?xima(solucionado)
Publicado por: Hackware en Noviembre 19, 2010, 10:58:43 AM
Yo estoy deacuerdo con brunoxzx en que la soluci?n de Tyranus es la mejor, pero se le escapa un detalle. El c?digo que propuso es solo para corregir la vida por lo que se debe entender que el c?digo completo quedar?a as?:

[gml]health+=25; //es decir, health=health+25;
health=min(health,100);[/gml]

Este c?digo se puede simplificar as?:

[gml]health=min(health+25,100);[/gml]

...reduciendo toda la operaci?n a solo una l?nea de c?digo ?Eso es eficiencia! :D