Refactoring of blob.gd
This commit is contained in:
parent
c558f31583
commit
b3b6998e14
1 changed files with 11 additions and 2 deletions
|
|
@ -1,26 +1,35 @@
|
|||
extends Node2D
|
||||
|
||||
|
||||
var moving = false
|
||||
@onready var player = get_tree().get_root().get_node("main/Player")
|
||||
@onready var target = player.position
|
||||
var speed = 500
|
||||
|
||||
# The target is set on initialization and never updated.
|
||||
@onready var target = player.position
|
||||
|
||||
var reached = false
|
||||
signal target_reached
|
||||
|
||||
func _ready() -> void:
|
||||
|
||||
# Wait one second before firing
|
||||
await get_tree().create_timer(1).timeout
|
||||
moving = true
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
|
||||
# Fire towards the center of the cross
|
||||
if moving:
|
||||
position += (target - global_position).normalized().rotated(-get_parent().rotation) * speed * delta
|
||||
|
||||
# When reaching the center, inform parent node
|
||||
if((global_position - target).length() < 40):
|
||||
moving = false
|
||||
if not reached:
|
||||
target_reached.emit()
|
||||
reached = true
|
||||
|
||||
# Damage the player on contact
|
||||
if has_node("Area2D") and $Area2D.overlaps_body(player):
|
||||
player.hurt(1, global_position-player.position)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue