diff options
author | David Luevano Alvarado <david@luevano.xyz> | 2022-06-04 10:27:35 -0600 |
---|---|---|
committer | David Luevano Alvarado <david@luevano.xyz> | 2022-06-04 10:27:35 -0600 |
commit | 9a2bcf02c2623c8f3e8f5e74e70b3c0333790484 (patch) | |
tree | 42c7398d15c6b888b7d9d00ecb4e8fc5107501c7 /src/game.gd | |
parent | e6beb7d4d3450c68ca5ebfae040f42dd82db1b31 (diff) |
refactor nodes to work with native scene changer, add functioning main menu
Diffstat (limited to 'src/game.gd')
-rw-r--r-- | src/game.gd | 37 |
1 files changed, 37 insertions, 0 deletions
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 |