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.
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)
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