Bugs con las fisicas de mi personage
acabo de hacer que en mi juego de lucha el jugador pueda embestir al enemigo, y al hacerlo el enemigo se desliza ligeramente, pero por algún motivo no funciona, le pedí ayuda a chat gpt y lo único que hace es decirme que haga 500 cambios inútiles en mi código, los cuales no arreglan nada.
uso una var llamada u/export var fuerza_empuje = 600
la parte que se encarga de detectar el daño es esta.
func recibir_daño(cantidad, tipo_golpe, atacante = null):
Life -= cantidad
$vida.text = str(Life)
if estado == "bloquear":
golpes\_bloqueados += 1
var reduccion = 0.95 - (golpes\_bloqueados \* 0.15)
reduccion = clamp(reduccion, 0.2, 0.95)
cantidad \*= (1.0 - reduccion)
Life -= cantidad
$vida.text = str(Life)
return
golpes\_bloqueados = 0
dañado = true
ocupado = true
atacando = false
match tipo_golpe:
"embestida":
empujado = true
ocupado = true
atacando = false
if atacante != null:
var dir = sign(global_position.x - atacante.global_position.x)
velocity.x = dir * fuerza_empuje
$AnimationPlayer.play("daño2")
y creo que el fallo podría estar aquí.
if dañado and not empujado:
velocity.x = 0
move\_and\_slide()
return
aunque yo lo borre y seguia sin funcionar, pero el fallo tambien podria estar aqui.
if empujado:
velocity.x = lerp(velocity.x, 0.0, 0.1)
move\_and\_slide()
if abs(velocity.x) < 10:
empujado = false
dañado = false
ocupado = false
return