2020-01-14 22:20:17 +01:00
|
|
|
extends Node
|
|
|
|
|
2020-01-15 15:44:46 +01:00
|
|
|
export (PackedScene) var Tower = preload("res://Tower.tscn");
|
|
|
|
|
2020-01-14 22:20:17 +01:00
|
|
|
onready var screen_size = Vector2(ProjectSettings.get("display/window/size/width"), ProjectSettings.get("display/window/size/height"))
|
|
|
|
onready var player = get_node("Player")
|
2020-01-21 17:00:57 +01:00
|
|
|
onready var bg = get_node("Background")
|
2020-01-14 22:20:17 +01:00
|
|
|
|
2020-01-15 15:44:46 +01:00
|
|
|
export var tower_density = 200
|
2020-01-15 18:48:07 +01:00
|
|
|
var last_built = 300
|
2020-01-15 15:44:46 +01:00
|
|
|
|
|
|
|
func build_tower():
|
|
|
|
var tower = Tower.instance()
|
|
|
|
tower.connect("exit", self, "_on_Tower_exit")
|
2020-01-15 18:48:07 +01:00
|
|
|
var pos = Vector2(last_built, randf() * (screen_size.y - 200) - screen_size.y / 2 + 100) # The player's movement vector.
|
2020-01-15 15:44:46 +01:00
|
|
|
tower.position = pos
|
|
|
|
|
|
|
|
add_child(tower)
|
|
|
|
last_built += tower_density
|
|
|
|
|
2020-01-14 22:20:17 +01:00
|
|
|
func update_view():
|
|
|
|
var canvas_transform = get_viewport().get_canvas_transform()
|
|
|
|
var pos = player.position
|
|
|
|
pos.y = 0
|
2020-01-15 15:44:46 +01:00
|
|
|
canvas_transform[2] = -pos + screen_size / 2
|
2020-01-21 17:00:57 +01:00
|
|
|
|
|
|
|
bg.position = player.position
|
2020-01-14 22:20:17 +01:00
|
|
|
get_viewport().set_canvas_transform(canvas_transform)
|
|
|
|
|
|
|
|
func _ready():
|
2020-01-15 15:44:46 +01:00
|
|
|
randomize()
|
2020-01-14 22:20:17 +01:00
|
|
|
update_view()
|
|
|
|
|
2020-01-15 15:44:46 +01:00
|
|
|
print(screen_size)
|
|
|
|
while last_built < screen_size.x * 2:
|
|
|
|
build_tower()
|
|
|
|
|
2020-01-14 22:20:17 +01:00
|
|
|
func _on_Player_move():
|
|
|
|
update_view()
|
2020-01-15 15:44:46 +01:00
|
|
|
|
|
|
|
func _on_Tower_exit():
|
|
|
|
build_tower()
|