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