32 lines
948 B
GDScript
32 lines
948 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
|
|
|
|
var rain_drop_packed := preload("res://VFX/pixel_drop.tscn")
|
|
|
|
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_packed.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)
|