TowerDefense/VFX/pixel_rain.gd
2025-09-16 22:53:36 +02:00

32 lines
943 B
GDScript

extends Node2D
@export_category("Rain")
@export var cooldown := 0.2
@export_category("RainDrop")
@export var speed := 10.0
@export var lifetime := 3.0
@export var trail_lifetime := 1.0
@export var overall_scale := 1.0
var time := 0.0
const RAIN_DROP : PackedScene = preload("uid://cqn4xrehqnuso")
func _physics_process(delta: float) -> void:
if time >= cooldown:
make_it_rain()
time = 0.0
time += delta
func make_it_rain() -> void:
var rain_drop : RainDrop = RAIN_DROP.instantiate()
var screen_width = get_viewport().get_camera_2d().position.x + get_viewport().size.x/2
var screen_height = get_viewport().get_camera_2d().position.y - get_viewport().size.y/2 - 100 #Offset
rain_drop.speed = speed
rain_drop.lifetime = lifetime
rain_drop.trail_lifetime = trail_lifetime
rain_drop.overall_scale = overall_scale
add_child(rain_drop)
rain_drop.global_position = Vector2(randi_range(-screen_width,screen_width), screen_height)