Anschlag - SamToorchi/Godot-Zombi-Game GitHub Wiki
entity.gd
var knockdir = Vector2(0,0)
var hitstun = 0
var health = 1
export(String) var TYPE = "ENEMY"
func movement_loop():
var motion
if hitstun == 0:
motion = movedir.normalized() * SPEED
else:
motion = knockdir.normalized() * SPEED * 1.5
move_and_slide(motion, Vector2(0,0))
func damage_loop():
# kleine zeitliche Puffer, bis Hitstun wieder auf 0 ist
if hitstun > 0:
hitstun -= 1
for body in $hitbox.get_overlapping_bodies():
#solange man noch keinen Schlag bekommen hat und die Variablen der Objekte, die "DAMAGE" heißen, existieren und der TYPE ungleich sind (z.B. Player oder Feind)
if hitstun == 0 and body.get("DAMAGE") != null and body.get("TYPE") != TYPE:
#solange man noch keinen Schlag bekommen hat und die Variablen der Objekte, die "DAMAGE" heißen, existieren und der TYPE ungleich sind (z.B. Player oder Feind)
if hitstun == 0 and body.get("DAMAGE") != null and body.get("TYPE") != TYPE:
health -= body.get("DAMAGE")
hitstun = 10
# man nimmt seine aktuelle Position und subtraiert mit der Position der Body and der Berührungspunkt
knockdir = global_transform.origin - body.global_transform.origin
stalfos.gd
const DAMAGE = 1