From 9a2bcf02c2623c8f3e8f5e74e70b3c0333790484 Mon Sep 17 00:00:00 2001 From: David Luevano Alvarado Date: Sat, 4 Jun 2022 10:27:35 -0600 Subject: refactor nodes to work with native scene changer, add functioning main menu --- src/game.gd | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/game.gd (limited to 'src/game.gd') diff --git a/src/game.gd b/src/game.gd new file mode 100644 index 0000000..218d975 --- /dev/null +++ b/src/game.gd @@ -0,0 +1,37 @@ +extends Node2D + +onready var _snake: Node2D = $Snake + + +func _ready() -> void: + Event.connect("game_over", self, "_on_game_over") + Event.connect("game_restart", self, "_on_game_restart") + Event.connect("snake_segment_body_entered", self, "_on_snake_segment_body_entered") + + +func _input(event: InputEvent) -> void: + if event.is_action_pressed("restart"): + Event.emit_signal("game_restart") + + +func _on_snake_segment_body_entered(body: Node) -> void: + if body is KinematicBody2D: + Event.emit_signal("game_over") + + +func _snake_set_process(on_off: bool) -> void: + _snake.propagate_call("set_process", [on_off]) + _snake.propagate_call("set_process_internal", [on_off]) + _snake.propagate_call("set_physics_process", [on_off]) + _snake.propagate_call("set_physics_process_internal", [on_off]) + _snake.propagate_call("set_process_input", [on_off]) + + +func _on_game_over() -> void: + print("game_over") + _snake_set_process(false) + + +func _on_game_restart() -> void: + print("game_restart") + get_tree().change_scene_to(Global.GAME_NODE) \ No newline at end of file -- cgit v1.2.3