hola busco como hacer un efecto de ser golpeado o atacado, porque ya me canse de usar el jump to start
busco hacer algo parecido al daño de sonic (ya tengo la animacion)
Podrias cambiar a otro objeto que tenga solo tenga ese comportamiento y cuando termine volver a cambiar al objeto principal. O hacer una maquina de estados.
Cambiar a otro objeto suena facil pero buscaba un ejemplo de como hacer ese comportamiento ya que existen varias formas y buscaba una efectiva
este codigo es algo largo pero funciona como la ceda puedes ser golpeado se muestra el sprite de dañado por unos segundos y despues entras en modo invulnerable donde nada puede hacerte daño, puedes aumentar o diminuir las variables de daño a tu gusto y cuanto dura la invulnerabilidad. si quieres añadir knockback puedes hacerlo añadiendo 2 variables nuevas
[gml]push1=false
push2=false[/gml]
y en el evento step
[gml]if hurt= true && image_xscale=-1
{
push1=true
push2=false
}
if hurt= true && image_xscale=1
{
push1=false
push2=true
}
if push1=true
{
vsp=-4
hsp=-2
}
else if push2=true
{
vsp=-4
hsp=2
}[/gml]
dependiendo de los numeros almacenados en el push es la fuerza con la que tu personaje sera lanzado en el aire
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Codigo de daño
Create event
[gml]hurt=false
timer=0
timer2=0
invulnerable=false
lock=false
[/gml]
Step event
[gml]
if hurt=true
{
sprite_index=sprite14
timer+=1
lock=true
hsp=0
}
if timer>30
{
hurt=false
timer=0
invulnerable=true
alarm[0]=1
lock=true
push1=false
push2=false
}
if invulnerable=true
{
timer2+=1
}
if timer2>80
{
invulnerable=false
timer2=0
visible=true
}
[/gml]
Alarm[0]
[gml]
if invulnerable=true
{
visible=true
alarm[1]=3
}
[/gml]
Alarm 1
[gml]
if invulnerable=true
{
visible=false
alarm[0]=3
}
[/gml]
recuerda que debes bloquear las animaciones para que el sprite de dañado se muestre puedes hacerlo poniendo antes del codigo esto
[gml]
if hurt=false
{
// tus animaciones
}
y bloquear el movimiento
if lock=false
{
movimiento izquierda derecha
}
[/gml]
ahora para activarlo basta con poner en el evento colision con lo que sea esto
[gml]
if hurt=false && invulnerable=false
{
hurt=true
hsp=0
}
[/gml]
el codigo va bien, otro metodo que emplea las variables