feat: 添加Hitbox和Hurtbox,添加敌人和玩家之间的碰撞

This commit is contained in:
luke358
2026-05-18 14:55:43 +08:00
parent 67ea3f2d42
commit 2060719f4e
10 changed files with 117 additions and 3 deletions
+45
View File
@@ -0,0 +1,45 @@
extends Area2D
class_name HitboxComponent
signal on_hit_hurtbox(hurtbox: HurtboxComponent)
var damage := 1.0
var critical := false
var knockback_power := 0.0
var source: Node2D
func enable() -> void:
set_deferred("monitoring", true)
set_deferred("monitorable", true)
func disable() -> void:
set_deferred("monitoring", false)
set_deferred("monitorable", false)
func setup(damage: float, critical: bool, knockback: float, source: Node2D) -> void:
self.damage = damage
self.critical = critical
knockback_power = knockback
self.source = source
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _on_area_entered(area: Area2D) -> void:
if area is HurtboxComponent:
on_hit_hurtbox.emit(area)
print(area.owner.name)