stormy day
This commit is contained in:
parent
72761e3de7
commit
6c211c364c
14 changed files with 266 additions and 28 deletions
34
objects/gfx/lightning.gd
Normal file
34
objects/gfx/lightning.gd
Normal file
|
@ -0,0 +1,34 @@
|
|||
extends Node2D
|
||||
|
||||
|
||||
export var color: Color
|
||||
export var width: float = 1.5
|
||||
export var segments: int
|
||||
export var segment_length: float
|
||||
export var angle_min: float
|
||||
export var angle_max: float
|
||||
export var branch_chance: float
|
||||
export var fade_time: float
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
var tween = create_tween()
|
||||
tween.tween_property(self, "modulate:a", 0.0, fade_time).set_trans(Tween.TRANS_EXPO)
|
||||
tween.tween_callback(self, "queue_free")
|
||||
|
||||
|
||||
func _draw() -> void:
|
||||
var pos := Vector2.ZERO
|
||||
var dir := Vector2.DOWN * segment_length
|
||||
var offset = randi() % 2
|
||||
for i in range(offset, segments + offset):
|
||||
var angle = rand_range(angle_min, angle_max)
|
||||
if i % 2 == 0:
|
||||
angle *= -1.0
|
||||
dir = dir.rotated(deg2rad(angle))
|
||||
var new_pos = pos + dir
|
||||
draw_line(pos, new_pos, color, width, false)
|
||||
if randf() <= branch_chance:
|
||||
dir = dir.rotated(deg2rad(angle) * -2.0)
|
||||
draw_line(pos, pos + dir, color, width, false)
|
||||
pos = new_pos
|
Loading…
Add table
Add a link
Reference in a new issue