godot-demo-projects/loading/serialization/enemy.gd

31 lines
703 B
GDScript

class_name Enemy extends Node2D
## Movement speed in pixels per second.
const MOVEMENT_SPEED = 75.0
const DAMAGE_PER_SECOND = 15.0
## The node we should be "attacking" every frame.
## If [code]null[/code], nobody is in range to attack.
var attacking: Player = null
func _process(delta: float):
if is_instance_valid(attacking):
attacking.health -= delta * DAMAGE_PER_SECOND
position.x += MOVEMENT_SPEED * delta
# The enemy went outside of the window. Move it back to the left.
if position.x >= 732:
position.x = -32
func _on_attack_area_body_entered(body: PhysicsBody2D):
if body is Player:
attacking = body
func _on_attack_area_body_exited(_body: PhysicsBody2D):
attacking = null