Marzo 13, 2014, 05:41:30 AM Ultima modificación: Marzo 13, 2014, 06:35:24 AM por ian12
Pues bueno.. Me gustaría una ayudita  :-[

Básicamente me gustaría saber como hacer que mi personaje (juego de plataforma 2D), pueda recoger primero un yelmo, luego un escudo y luego una espada (en distintas rooms) y pase esto..

Al recoger el yelmo, el daño que reciba se vea reducido..

al recoger el escudo, el daño también se reduzca sumado a lo del yelmo (pero cuando aprieto para usarlo)..

y que cuando recoga la espada, pueda causar daño al usarla (obviamente) Y SE SUME A LO ANTERIOR..

(HARÉ QUE LOS RECOGA SI O SI)

OSEA, Y QUE PERSISTA SU VIDA Y EXPERIENCIA AL CAMBIAR, Y QUE LOS OBJETOS SE VAYAN SUMANDO

El personaje ya tiene el sistema para que dañe a los enemigos saltándoles encima y me gustaría conservar esto al cambiar.. PERDONEN SI SUENA MUY AMBICIOSO :P


Mis conocimientos son limitados, así que si me lo pueden poner simple estaría bien  ???




Tendrías que hacer un sistema de variables globales, infórmate mas sobre estas y verás como no es muy difícil de hacerlo.
"Y cuando termines de hablar... te callas."

O sea, con lo que dijo LowHertzs vos vas a poder hacer que el juego se acuerde de que si agarraste el escudo o no por ejemplo. Una forma sería que al principio del juego crees una variable global llamada "global.resistencia" y le pongas valor 0, pensando que 0 es nada de resistencia y 1 es resistencia total
Cuando agarre el yelmo modificás la variable global.resistencia y hacés que ahora sea un poco más resistente, por ejemplo haciendo que ahora sea 0.2
Luego cuando agarre el escudo hacés que aumente a 0.4 y así sucesivamente

Luego cuando el jugador reciba daño vas a tener que caclular el daño recibido teniendo en cuenta la resistencia, por ejemplo:
daño_recibido = fuerza_golpe * (1 - global.resistencia)
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy


para empezar, a cada item equipable le debes especificar sus atributos.

[obj_esc]       
globalvar shield = 5    //Defensa del ESCUDO

[obj_yel]       
globalvar helmet = 2    //Defensa del YELMO

[obj_sw]                 
globalvar sword = 4     //Ataque de la ESPADA

[obj_jugador]
it_sw = 0                   //al iniciar el juego, no hay espada equipada
it_yel = 0                   //ni yelmo equipado
it_esc = 0                  // ni escudo.

cuando el jugador recoja un item, la variable respectiva cambia a 1. Si el jugador ya recogió los tres items. it_sw = 1; it_yel = 1; it_esc = 1.

[FÓRMULAS EN EN JUGADOR]

defensa = (it_yel * helmet) + (it_esc * shield) + [cualquier otra defensa que el jugador tenga, armadura, amuletos, etc.]
ataque = (it_sw * sword) + [cualquier otra bonificación al ataque]


Si por ejemplo, el yelmo no se ha recogido, (it_yel * helmet) es igual a 0, por lo que la fórmula no se ve afectada, si el yelmo ya se recogió, (it_yel * helmet) es igual a 2, que es la bonificación por defensa que otorga el yelmo, la cual se suma a las otras bonificaciones si es que ya recogiste sus objetos.

Hay más de una manera de hacer lo que pides, ésta es una nada más.

Gracias, trataré de arreglármelas con sus respuestas :D