26 lines
645 B
GDScript
26 lines
645 B
GDScript
extends Camera2D
|
|
|
|
@export var INTENSITY = 2.0
|
|
@export var DURATION = 1000.0
|
|
@export var STARTTIME = 0
|
|
|
|
var currentStrength = 1
|
|
|
|
func _ready() -> void:
|
|
randomize()
|
|
|
|
func _process(delta: float) -> void:
|
|
var decreaser = (DURATION - (Time.get_ticks_msec() - STARTTIME)) / DURATION
|
|
|
|
var randX = randf_range(-1,1) * currentStrength * decreaser
|
|
var randY = randf_range(-1,1) * currentStrength * decreaser
|
|
offset = Vector2(randX, randY)
|
|
|
|
if decreaser < 0:
|
|
offset = Vector2.ZERO
|
|
|
|
func shake(strength : float = 1, duration : float = 1):
|
|
currentStrength = float(strength)
|
|
DURATION = float(duration*1000)
|
|
STARTTIME = Time.get_ticks_msec()
|
|
|