Diffstat (limited to 'effects/Game.gd')
| -rw-r--r-- | effects/Game.gd | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/effects/Game.gd b/effects/Game.gd new file mode 100644 index 0000000..e9e4526 --- /dev/null +++ b/effects/Game.gd @@ -0,0 +1,78 @@ +extends Node2D + +signal transition_halfway +var just_called = false +var keyboard = true setget set_keyboard +var USE_TOUCH = OS.has_touchscreen_ui_hint() + + +func halfway(): + emit_signal("transition_halfway") + + +func exit(): + get_tree().quit() + + +func transition(to = null): + if just_called == false: + just_called = true + get_tree().paused = true + $transitionAnimation.stop(true) + $transitionAnimation.play("fadeinout") + if to: + yield(Game, "transition_halfway") + # warning-ignore:return_value_discarded + get_tree().change_scene(to) + set_keyboard(keyboard) + if OS.has_touchscreen_ui_hint(): + turn_off() + get_tree().paused = false + just_called = false + + +func _ready(): + if OS.has_touchscreen_ui_hint(): + turn_off() + + +var title = "spaceshooty" + + +func _process(_delta): + if Engine.get_physics_frames() % 30 == 0: + OS.set_window_title(title + " | fps: " + str(Engine.get_frames_per_second())) + + +func turn_off(): + yield(get_tree().create_timer(.3), "timeout") + get_tree().call_group("keyboard", "hide") + get_tree().call_group("gamepad", "hide") + get_tree().call_group("not_mobile", "hide") + + +func _input(event: InputEvent) -> void: + if not USE_TOUCH: + if event is InputEventJoypadButton or event is InputEventJoypadMotion and keyboard == true: + self.keyboard = false + elif event is InputEventKey and keyboard == false: + self.keyboard = true + + +func set_keyboard(new_keyboard): + keyboard = new_keyboard + if new_keyboard == true: + get_tree().call_group("gamepad", "hide") + get_tree().call_group("keyboard", "show") + elif new_keyboard == false: + get_tree().call_group("keyboard", "hide") + get_tree().call_group("gamepad", "show") + + +func instance_scene_on_main(scene, position): + var main = get_tree().current_scene + var instance = scene.instance() + main.call_deferred("add_child", instance) +# main.add_child(instance) + instance.global_position = position + return instance |