50 lines
1.1 KiB
GDScript
50 lines
1.1 KiB
GDScript
extends Node2D
|
|
|
|
|
|
var attackerScene = preload("res://attacker.tscn")
|
|
|
|
|
|
var speed = 3.5;
|
|
|
|
var base_scale = 0.346
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready():
|
|
get_node("julian").position = get_viewport().size/2
|
|
get_node("julian").scale = Vector2.ONE * (base_scale * 16)
|
|
pass # Replace with function body.
|
|
|
|
|
|
func _timeout():
|
|
var child = attackerScene.instance()
|
|
var width = get_viewport().size.x
|
|
var height = get_viewport().size.y
|
|
|
|
var rot = rand_range(0, PI*2)
|
|
|
|
var center = Vector2(width, height)/2
|
|
|
|
var vec = Vector2(-max(width+70, height+70), 0)
|
|
vec = vec.rotated(rot) + center
|
|
vec = vec
|
|
|
|
child.rotation = rot
|
|
child.position = vec
|
|
|
|
child.target = center
|
|
child.speed = (min(width, height) / speed) * rand_range(0.8, 1.2)
|
|
|
|
add_child(child)
|
|
|
|
speed *= 0.985
|
|
|
|
var isleep = 0
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _process(delta):
|
|
isleep += delta
|
|
if isleep > 12:
|
|
get_node("julian").rotation += delta*2/speed
|
|
if isleep < 1.5:
|
|
get_node("julian").scale = Vector2.ONE * (base_scale * 1+(15 * ((1.5 - isleep)/1.5)))
|