Hola, como puede hacer que mi personaje al chocar contra el enemigo, o elementos que le hagan da?o, brinque hacia atras y ponga una animacion de que recibio el impacto ?
el codigo que use es este:
[gml]
EVENTO COLISION CON ENEMIGO
if dead=false
instance_create(x,y,obj_impacto)// aqui crea el objeto impacto
else
{
if global.health > 0
{
global.health -= 1;
}
if global.health <= 0
{
lives -= 1
}
}
//Si quieres que el jugador se mueva un poco para atras por las dudas pon:
x = x - 16
//Y lo que debes poner si o si(Que el enemigo se destruya) es:
with other
{
instance_destroy()
}
OBJETO IMPACTO
EVENTO CREATE
image_speed=0.5
ANIMATION END
instance_destroy()
[/gml]
Se me ocurrio usar el mismo sistema de cuando se muere mi personaje , es decir que al colisionar con el enemigo se crea la instancia de un objeto y que este lance la animacion del impacto que esta recibiendo , pero pasa algo extra?o xD , la animacion del objeto aparece pero mi personaje tambien?? xD ,
algo asi .. en la imagen que puse sale lo que ocurre.. disculpen si la explicacion es muy larga ..
Obviamente que van a aparecer los dos, si el objeto del jugador nunca se destruye.
Recuerdo que cuando haces que el jugador muera, usas "instance_change" y no "instance_create".
Por eso es.
Entonces, cuando el personaje muere, la instancia CAMBIA con la otra. Por ende, la primera no existe mas.
Pero cuando es golpeado, lo que pasa es que se CREA una instancia del otro objeto, pero sin destruir la del jugador.
Se entendio mas o menos? No es de mis mejores explicaciones xD Disculpa.
Cualquier cosa, vuelve a comentar, sabes lo que me gusta tu juego y hago todo lo posible por ayudarte jaja :D
Que andes bien shaggymon ^^
aaaaa, hare la prueba inmediatamente?? jaja lo de la explicacion es lo de menos siempre son utiles tus consejos :)
MaanuRP cuidese gancho
Apenas pruebes y veas el resultado me cuentas, asi vemos si necesitas algo mas o quedo el tema solucionado y puedes seguir con el juego :D
lo logree.. era como me lo habias dicho, pero agregue un paso adicional porque al final el evento se destruia asi que agregue en el evento animation end otro instance_change pero al objeto de mi personaje principal, por si a alguien le interesa quedo asi finalmente ..
[gml]
EVENTO COLISION CON ENEMIGO
if dead=false
instance_change(obj_impacto,true)
else
{
if global.health > 0
{
global.health -= 1;
}
if global.health <= 0
{
lives -= 1
}
}
//Si quieres que el jugador se mueva un poco para atras por las dudas pon:
x = x - 16
//Y lo que debes poner si o si(Que el enemigo se destruya) es:
with other
{
instance_destroy()
}
OBJETO IMPACTO
EVENTO CREATE
image_speed=0.5
set the gravity
direction = 270
gravity = 0,5
COLISION CON EL PISO
hspeed=0
ANIMATION END
instance_change(Kamen,true)
[/gml]
Te quedo excelente ;) Felicitaciones! Y el juego esta quedando barbaro por lo que vi en la imagen.
:D
gracias?? .. en eso estamos.. todavia no domino mucho lo de los tiles asi que hartas pifias han aparecido xDD , pero va mejorando.. se agradece mucho la ayuda.
Un consejo cuando quieras que un object se mueva asia atras usa esto.
En vez de x=x-16; usa x*=-1; eso invierte el movimiento osea asia atras sin importar la direccion de la colision, es matematica simple.
lo que hace es que multiplica por 1 osea 10*=1 es 10 pero como lo multiplica en valor negativo osea 10*=-1= -10; como ves un valor negativo. eso invierte el movimiento tambien se aplica los de la suma se simbolos - - = + y + + = + +-= - por eso invierte el movimiento.
Exactamente, excelente la idea de Elvis. Sino cuando choques desde la derecha el personaje se movera hacia adelante y no hacia atras.
Esto estaba en tu juego cuando estaban los enemigos, y se puso para que no vuelvas a colisionar con estos, recuerdas?
Ahora la mejor forma de hacerlo es como te dijo Elvis :D
sii funciona perfecto, muchas gracias??..