player hurt working with signals
This commit is contained in:
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()
|
||||
|
||||
@@ -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()
|
||||
@@ -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()
|
||||
Reference in new issue
Block a user