From 495e6ed2ed79adc532984ac0d962e3a5bc41f087 Mon Sep 17 00:00:00 2001 From: Jakob Feldmann Date: Sun, 25 Jun 2023 21:27:54 +0200 Subject: [PATCH] fix: slightly improved dvd thingy --- src/Levels/1 Tut Level.tscn | 22 ++------ src/Levels/TutorialThingy.gd | 56 ++++++++++--------- .../MainMenu/ControlsMenu/InputLine.gd | 30 +++++----- 3 files changed, 51 insertions(+), 57 deletions(-) diff --git a/src/Levels/1 Tut Level.tscn b/src/Levels/1 Tut Level.tscn index 878fc1d..5ee69ce 100644 --- a/src/Levels/1 Tut Level.tscn +++ b/src/Levels/1 Tut Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=18 format=2] +[gd_scene load_steps=17 format=2] [ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=1] [ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=2] @@ -13,8 +13,6 @@ [ext_resource path="res://addons/controller_icons/objects/Button.gd" type="Script" id=11] [ext_resource path="res://src/Levels/TutorialThingy.gd" type="Script" id=12] -[sub_resource type="RectangleShape2D" id=14] - [sub_resource type="AnimationNodeStateMachinePlayback" id=4] [sub_resource type="ConvexPolygonShape2D" id=12] @@ -103,19 +101,11 @@ unique_name_in_owner = true [node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"] wait_time = 20.0 -[node name="TutorialButton" type="StaticBody2D" parent="."] -z_index = 4 -z_as_relative = false -collision_layer = 0 -collision_mask = 0 +[node name="TutorialThingy" type="Sprite" parent="."] +z_index = 3 script = ExtResource( 12 ) -[node name="Sprite" type="Sprite" parent="TutorialButton"] - -[node name="CollisionShape2D" type="CollisionShape2D" parent="TutorialButton"] -shape = SubResource( 14 ) - -[node name="ControllerButton" type="Button" parent="TutorialButton"] +[node name="ControllerButton" type="Button" parent="TutorialThingy"] visible = false margin_left = -10.0 margin_top = -10.0 @@ -131,10 +121,10 @@ drag_margin_bottom = 0.3 visible = true [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 3 +frame = 11 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 10 +frame = 4 [node name="Blobby" parent="." instance=ExtResource( 9 )] unique_name_in_owner = true diff --git a/src/Levels/TutorialThingy.gd b/src/Levels/TutorialThingy.gd index 665f0ce..e809148 100644 --- a/src/Levels/TutorialThingy.gd +++ b/src/Levels/TutorialThingy.gd @@ -1,34 +1,38 @@ -extends StaticBody2D +extends Sprite var screen_size: Vector2 var velocity = Vector2(1,1) onready var blobby = $"%Blobby" onready var cam = $"%BlobbyCam" + func _ready() -> void: - $ControllerButton.path = "jump" - screen_size = cam.screen_rect + $ControllerButton.path = "move_right" + screen_size = cam.screen_rect func _process(delta: float) -> void: - $Sprite.texture = $ControllerButton.icon - var tex_size = Vector2(20,20) - var up_left_pos = cam.get_global_transform().affine_inverse() * (position - tex_size/2) - var down_right_pos = cam.get_global_transform().affine_inverse() * (position + tex_size/2) - - var screen_stretch_factor = get_tree().root.size / screen_size - var blobby_screen_pos = (blobby.get_viewport_transform() * (blobby.position))/screen_stretch_factor - var corrected_screen = screen_size - blobby_screen_pos - print(get_tree().root.get_visible_rect().position) - - if up_left_pos.x + blobby_screen_pos.x <= 0: - velocity.x = 1 - elif down_right_pos.x >= corrected_screen.x: - velocity.x = -1 - - if up_left_pos.y + blobby_screen_pos.y <= 0: - velocity.y = 1 - elif down_right_pos.y >= corrected_screen.y: - velocity.y = -1 - - self.position += velocity - - + # TODO process less in each frame + self.texture = $ControllerButton.icon + self.scale.x = 0.5 + self.scale.y = 0.5 + var tex_size = Vector2(self.texture.get_width(), self.texture.get_height()/4) + var up_left_pos = cam.get_global_transform().affine_inverse() * (position - tex_size/2) + var down_right_pos = cam.get_global_transform().affine_inverse() * (position + tex_size/2) + + var screen_stretch_factor = get_tree().root.size / screen_size + var blobby_screen_pos = (blobby.get_viewport_transform() * (blobby.position))/screen_stretch_factor + var corrected_screen = screen_size - blobby_screen_pos + print(get_tree().root.get_visible_rect().position) + + if up_left_pos.x + blobby_screen_pos.x <= 0: + velocity.x = 1 + elif down_right_pos.x >= corrected_screen.x: + velocity.x = -1 + + if up_left_pos.y + blobby_screen_pos.y <= 0: + velocity.y = 1 + elif down_right_pos.y >= corrected_screen.y: + velocity.y = -1 + + self.position += velocity + + diff --git a/src/UserInterface/Screens/MainMenu/ControlsMenu/InputLine.gd b/src/UserInterface/Screens/MainMenu/ControlsMenu/InputLine.gd index 0caa292..76958d8 100644 --- a/src/UserInterface/Screens/MainMenu/ControlsMenu/InputLine.gd +++ b/src/UserInterface/Screens/MainMenu/ControlsMenu/InputLine.gd @@ -6,24 +6,24 @@ export var button_size: Vector2 = Vector2(30,30) export var interactable: bool = false func initialize(action_name, event): - $Action.text = action_name.capitalize() - $Key.add_child(create_controller_button(event)) + $Action.text = action_name.capitalize() + $Key.add_child(create_controller_button(event)) func update_key(event): - $Key.remove_child($Key.get_child(0)) - $Key.add_child(create_controller_button(event)) + $Key.remove_child($Key.get_child(0)) + $Key.add_child(create_controller_button(event)) func create_controller_button(event) -> ControllerButton: - var event_path = ControllerIcons._convert_event_to_path(event) - var controller_button: ControllerButton = ControllerButton.new() - controller_button.path = event_path - if(!interactable): - controller_button.focus_mode = FOCUS_NONE - controller_button.enabled_focus_mode = FOCUS_NONE - controller_button.mouse_filter = MOUSE_FILTER_IGNORE - controller_button.rect_size = button_size - controller_button.expand_icon = true - return controller_button + var event_path = ControllerIcons._convert_event_to_path(event) + var controller_button: ControllerButton = ControllerButton.new() + controller_button.path = event_path + if(!interactable): + controller_button.focus_mode = FOCUS_NONE + controller_button.enabled_focus_mode = FOCUS_NONE + controller_button.mouse_filter = MOUSE_FILTER_IGNORE + controller_button.rect_size = button_size + controller_button.expand_icon = true + return controller_button func _on_ChangeButton_pressed(): - emit_signal('change_button_pressed') + emit_signal('change_button_pressed')