Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: NU597 en Agosto 04, 2019, 06:34:59 pm

Título: Sistema de Batalla [04/08/2019]
Publicado por: NU597 en Agosto 04, 2019, 06:34:59 pm
Hola otra vez hoy vengo con una duda.
de como hacer eso de ataque y defenza en game maker
osea eso de los RPG cuando atacas a un enemigo tu ataque es aleatorio si va a ser 7, 8 o 9
supongamos que tenemos el ataque del player

Estadisticas del Player:
HP:80 DEF: 20 ATK: 10 POWER:15

y las estadisticas del Enemigo:
Estadisticas del Enemigo:
HP:20 DEF: 7 ATK: 5 POWER:3

Expliquenme que tengo que hacer para que cuando ataco al enemigo mi ataque se divida en la defensa del enemigo
Título: Re:Sistema de Batalla [04/08/2019]
Publicado por: Silver_light en Agosto 04, 2019, 07:23:01 pm
Bueno, que puedo decir, casi que te respondiste solo  XD
Si quieres dividir el ataque del jugador con la defensa del enemigo, solo debes aplicar la fórmula.
danio = obj_jugador.ataque / defensa;
vida -= danio;
Y variaría si se manejas decimales o no, si son redondeados a enteros:
danio = floor(obj_jugador.ataque / defensa);
vida -= danio;

Y claro, ya vendría el hecho de cómo tienes implementado el motor como tal para saber si va en un evento de colision o en una alarma, por ejemplo.
Título: Re:Sistema de Batalla [04/08/2019]
Publicado por: NU597 en Agosto 04, 2019, 07:29:39 pm
muchas gracias igual aun que no me di cuenta que me respondi solo XD
Bueno, que puedo decir, casi que te respondiste solo  XD
Si quieres dividir el ataque del jugador con la defensa del enemigo, solo debes aplicar la fórmula.
danio = obj_jugador.ataque / defensa;
vida -= danio;
Y variaría si se manejas decimales o no, si son redondeados a enteros:
danio = floor(obj_jugador.ataque / defensa);
vida -= danio;

Y claro, ya vendría el hecho de cómo tienes implementado el motor como tal para saber si va en un evento de colision o en una alarma, por ejemplo.
Título: Re:Sistema de Batalla [04/08/2019]
Publicado por: Marth en Agosto 04, 2019, 08:06:49 pm
Veo que tienes un parametro llamado "power".
¿Es la potencia del ataque que usara cada combatiente?
Porque si divides en bruto sus estadisticas, veo que apenas os hareis 2 o 3 puntos de daño.
En pokemon, usar ataque/defensa tiene sentido, al ser obligatorio atacar con técnicas, pero si en tu juego hay ataques estandar, la cosa es más compleja.
Igual puedes hacer que la formula sea algo como (nivel+potencia)*ataque/defensa. El ataque básico tendria potencia 0, y otros movimiento tendran valores superiores.
Recomiendo que en vez de redondear con floor, uses ceil, ya que redondeara a la alta y garantizara que hagas como mínimo un punto de daño.