Enero 15, 2018, 05:03:57 PM Ultima modificación: Enero 17, 2018, 04:35:56 PM por AzTaki-De
Bueno verán,  tengo una variable llamada global.Vida = 20 que es la del personaje. Y los enemigos cuando colisionan  con el jugador la variable es global.Vida -= 3
Ahora creando la variable global.defensa  = -2 y en la colisión la pongo así.  Si el enemigo toca al jugador global.Vida -= 3 + global.defensa por lo que el daño vendría siendo -1 en vez del -3 que es el daño inicial
mi problema es el siguiente. Como puedo hacer para que cuando la variable global.defensa sea mas grande que el daño hecho por el enemigo... Sea así.  global.Vida = -3 + global.defensa (que valdría -4)
es que en vez que le baje vida le sube la vida en 1. aun si tengo una global.vidamax
lo que quiero lograr es que si en caso la defensa sea mayor alos daño que hace el enemigo entonces que solo le haga 1 de daño.
estoy sería muy útil para mi así pondría habitaciones donde el jugador no pueda entrar si no tiene la defensa adecuada.
Pero ese es mi problema.  :(  :( No puedo hacer que deje de sumar vida en vez de bajarla si la defensa es mayor al daño del enemigo y si en caso es mayor entonces solo le baje 1 de vida   :'v ayuda por favor
Taki-Desu

Para eso solo coloca la condicional "if" y "else" de esta forma



global.ataque(es la variable de daño cambialo como lo tienes en el daño)

if global.ataque - global.defensa >= 0 then global.vida -= global.ataque - global.defensa

Cita de: Goganpis en Enero 15, 2018, 06:06:20 PM
Para eso solo coloca la condicional "if" y "else" de esta forma



global.ataque(es la variable de daño cambialo como lo tienes en el daño)

if global.ataque - global.defensa >= 0 then global.vida -= global.ataque - global.defensa

Veras probé el código.  cree la variable global.ataque = -3 ya que esta variable no la tenia, lo que si hacia el enemigo era bajar la global.Vida =-3 al jugador porque jugaba con esa variable. Así mira
with (obj_jugador)
{
global.Vida =-3  + global.defensa  // la defensa es =-2 por lo que la vida real a quitar es -1 en este código No había incluido el daño. Ahora si lo pusiese no sabría como hacer que reaccione con la vida :'v
puse al pie de la letra y nada. :c
 
Taki-Desu

Al final lo que hice fue dividir la global.Vida -=3/global.Defensa
si bien esto me saldría decimales :v en el objeto donde dibuja la vida en el draw_texto al final agregue  (floor(global.Vida))) así la vida no saldría en decimal :D no logre que bajará sólo 1 de vida pero al menos ya no le suma. espero mi solución  le pueda servir a alguien.
Taki-Desu