40 lines
1.1 KiB
GDScript
40 lines
1.1 KiB
GDScript
extends Node
|
|
|
|
@export var preyScene: PackedScene
|
|
var score
|
|
|
|
# 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_prey_timer_timeout() -> void:
|
|
# Create a new instance of the Mob scene.
|
|
var prey = preyScene.instantiate()
|
|
|
|
# Choose a random location on Path2D.
|
|
var preySpawnLocation = $PreyPath/PreySpawnLocation
|
|
preySpawnLocation.progress_ratio = randf()
|
|
|
|
# Set the mob's position to the random location.
|
|
prey.position = preySpawnLocation.position
|
|
|
|
# Set the mob's direction perpendicular to the path direction.
|
|
var direction = preySpawnLocation.rotation + PI / 2
|
|
|
|
# Add some randomness to the direction.
|
|
direction += randf_range(-PI / 4, PI / 4)
|
|
prey.rotation = direction
|
|
|
|
# Choose the velocity for the mob.
|
|
var velocity = Vector2(randf_range(50.0, 100.0), 0.0)
|
|
prey.linear_velocity = velocity.rotated(direction)
|
|
|
|
# Spawn the mob by adding it to the Main scene.
|
|
add_child(prey)
|