first commit
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
extends Node2D
|
||||
|
||||
var score :int = 0
|
||||
var level :int = 1
|
||||
var current_level_root :Node = null
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
current_level_root = get_node("LevelRoot")
|
||||
_load_level(level)
|
||||
|
||||
func _load_level(level :int) -> void:
|
||||
if current_level_root:
|
||||
current_level_root.queue_free()
|
||||
var level_path = "res://level%s" % level +".tscn"
|
||||
current_level_root = load(level_path).instantiate()
|
||||
add_child(current_level_root)
|
||||
current_level_root.name = "LevelRoot"
|
||||
_setup_level(current_level_root)
|
||||
|
||||
|
||||
func _setup_level(level_root :Node) -> void:
|
||||
var exit = level_root.get_node_or_null("Flag")
|
||||
if exit:
|
||||
exit.player_entered.connect(_on_exit_body_entered)
|
||||
|
||||
var enemies = level_root.get_node_or_null("Enemies")
|
||||
if enemies:
|
||||
for enemy in enemies.get_children():
|
||||
enemy.player_died.connect(_on_player_dead)
|
||||
var apples = level_root.get_node_or_null("Apples")
|
||||
if apples:
|
||||
for apple in apples.get_children():
|
||||
apple.collected.connect(_increase_score)
|
||||
|
||||
func _on_player_dead(body):
|
||||
body._die()
|
||||
|
||||
func _increase_score() -> void:
|
||||
score += 1
|
||||
print(score)
|
||||
|
||||
func _on_exit_body_entered(body: Node2D):
|
||||
print(body)
|
||||
level += 1
|
||||
body.can_move = false
|
||||
_load_level(level)
|
||||
Reference in New Issue
Block a user