player hurt working with signals

This commit is contained in:
OddlyTimbot committed 2024-10-07 14:24:38 -04:00
1 parent a6fc6acc12
commit 6355c31a7c
6 files changed
+101 -8

No files matched your search

@@ -4,6 +4,7 @@ var coinsCollected:int = 0
var player:Resource
signal playerDeath
signal playerHurt
func _ready() -> void:
print("Game controller is ready")
@@ -25,4 +26,6 @@ func playerDamage():
if player.health <= 0:
#kill him
playerDeath.emit()
else:
playerHurt.emit()
+18 -2
View File
@@ -8,6 +8,8 @@ const PUSH_FORCE = 700
var faceLeft = false
var living = true
signal playerDead
# can i push right or left
var pushLeftEnabled = false
var pushRightEnabled = false
@@ -18,18 +20,24 @@ var pushRightEnabled = false
@onready var playerSprite: AnimatedSprite2D = $AnimatedSprite2D
var pushTarget
var animPlaying = "idle"
var bullet = preload("res://scenes/bullet.tscn")
func killPlayer():
print("kill the player")
if living:
living = false
animPlaying = "death"
#play death animation
playerSprite.play("death")
func hurtPlayer():
animPlaying="hurt"
print("player should get hurt")
playerSprite.play("hurt")
func _physics_process(delta: float) -> void:
if living:
if living and not animPlaying=="hurt":
# Add the gravity.
if not is_on_floor():
velocity += get_gravity() * delta
@@ -102,3 +110,11 @@ func _physics_process(delta: float) -> void:
pushTarget = collider
else:
pushRightEnabled = false
func _on_animation_finished() -> void:
print(animPlaying + " finished playing.")
if animPlaying == "hurt":
animPlaying="idle"
if animPlaying=="death":
playerDead.emit()
+8 -4
View File
@@ -28,6 +28,8 @@ func _ready() -> void:
n.playerDamage.connect(GameController.playerDamage)
#GameController signals
GameController.playerDeath.connect(killPlayer)
GameController.playerHurt.connect(hurtPlayer)
player.playerDead.connect(deadPlayer)
func boxTrap():
print("Trigger a box trap!")
@@ -66,11 +68,13 @@ func crateFactory():
func killPlayer():
# tell player to die - starts death animation
player.killPlayer()
if timer.is_stopped():
timer.start(4)
func hurtPlayer():
player.hurtPlayer()
func deadPlayer():
if timer.is_stopped():
timer.start(1)
func resetWorld():
print("screne manager resetting world")
GameController.resetPlayer()
get_tree().reload_current_scene()