fix: slightly improved dvd thingy

This commit is contained in:
Jakob Feldmann 2023-06-25 21:27:54 +02:00
parent d3affaca7d
commit 495e6ed2ed
3 changed files with 51 additions and 57 deletions

View File

@ -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/Utilities/LevelState.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=2] [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://addons/controller_icons/objects/Button.gd" type="Script" id=11]
[ext_resource path="res://src/Levels/TutorialThingy.gd" type="Script" id=12] [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="AnimationNodeStateMachinePlayback" id=4]
[sub_resource type="ConvexPolygonShape2D" id=12] [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"] [node name="Timer" parent="UserInterface/HUD/HUDOverlay/GetBackTimer" index="0"]
wait_time = 20.0 wait_time = 20.0
[node name="TutorialButton" type="StaticBody2D" parent="."] [node name="TutorialThingy" type="Sprite" parent="."]
z_index = 4 z_index = 3
z_as_relative = false
collision_layer = 0
collision_mask = 0
script = ExtResource( 12 ) script = ExtResource( 12 )
[node name="Sprite" type="Sprite" parent="TutorialButton"] [node name="ControllerButton" type="Button" parent="TutorialThingy"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="TutorialButton"]
shape = SubResource( 14 )
[node name="ControllerButton" type="Button" parent="TutorialButton"]
visible = false visible = false
margin_left = -10.0 margin_left = -10.0
margin_top = -10.0 margin_top = -10.0
@ -131,10 +121,10 @@ drag_margin_bottom = 0.3
visible = true visible = true
[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"]
frame = 3 frame = 11
[node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"]
frame = 10 frame = 4
[node name="Blobby" parent="." instance=ExtResource( 9 )] [node name="Blobby" parent="." instance=ExtResource( 9 )]
unique_name_in_owner = true unique_name_in_owner = true

View File

@ -1,34 +1,38 @@
extends StaticBody2D extends Sprite
var screen_size: Vector2 var screen_size: Vector2
var velocity = Vector2(1,1) var velocity = Vector2(1,1)
onready var blobby = $"%Blobby" onready var blobby = $"%Blobby"
onready var cam = $"%BlobbyCam" onready var cam = $"%BlobbyCam"
func _ready() -> void: func _ready() -> void:
$ControllerButton.path = "jump" $ControllerButton.path = "move_right"
screen_size = cam.screen_rect screen_size = cam.screen_rect
func _process(delta: float) -> void: func _process(delta: float) -> void:
$Sprite.texture = $ControllerButton.icon # TODO process less in each frame
var tex_size = Vector2(20,20) self.texture = $ControllerButton.icon
var up_left_pos = cam.get_global_transform().affine_inverse() * (position - tex_size/2) self.scale.x = 0.5
var down_right_pos = cam.get_global_transform().affine_inverse() * (position + tex_size/2) self.scale.y = 0.5
var tex_size = Vector2(self.texture.get_width(), self.texture.get_height()/4)
var screen_stretch_factor = get_tree().root.size / screen_size var up_left_pos = cam.get_global_transform().affine_inverse() * (position - tex_size/2)
var blobby_screen_pos = (blobby.get_viewport_transform() * (blobby.position))/screen_stretch_factor var down_right_pos = cam.get_global_transform().affine_inverse() * (position + tex_size/2)
var corrected_screen = screen_size - blobby_screen_pos
print(get_tree().root.get_visible_rect().position) var screen_stretch_factor = get_tree().root.size / screen_size
var blobby_screen_pos = (blobby.get_viewport_transform() * (blobby.position))/screen_stretch_factor
if up_left_pos.x + blobby_screen_pos.x <= 0: var corrected_screen = screen_size - blobby_screen_pos
velocity.x = 1 print(get_tree().root.get_visible_rect().position)
elif down_right_pos.x >= corrected_screen.x:
velocity.x = -1 if up_left_pos.x + blobby_screen_pos.x <= 0:
velocity.x = 1
if up_left_pos.y + blobby_screen_pos.y <= 0: elif down_right_pos.x >= corrected_screen.x:
velocity.y = 1 velocity.x = -1
elif down_right_pos.y >= corrected_screen.y:
velocity.y = -1 if up_left_pos.y + blobby_screen_pos.y <= 0:
velocity.y = 1
self.position += velocity elif down_right_pos.y >= corrected_screen.y:
velocity.y = -1
self.position += velocity

View File

@ -6,24 +6,24 @@ export var button_size: Vector2 = Vector2(30,30)
export var interactable: bool = false export var interactable: bool = false
func initialize(action_name, event): func initialize(action_name, event):
$Action.text = action_name.capitalize() $Action.text = action_name.capitalize()
$Key.add_child(create_controller_button(event)) $Key.add_child(create_controller_button(event))
func update_key(event): func update_key(event):
$Key.remove_child($Key.get_child(0)) $Key.remove_child($Key.get_child(0))
$Key.add_child(create_controller_button(event)) $Key.add_child(create_controller_button(event))
func create_controller_button(event) -> ControllerButton: func create_controller_button(event) -> ControllerButton:
var event_path = ControllerIcons._convert_event_to_path(event) var event_path = ControllerIcons._convert_event_to_path(event)
var controller_button: ControllerButton = ControllerButton.new() var controller_button: ControllerButton = ControllerButton.new()
controller_button.path = event_path controller_button.path = event_path
if(!interactable): if(!interactable):
controller_button.focus_mode = FOCUS_NONE controller_button.focus_mode = FOCUS_NONE
controller_button.enabled_focus_mode = FOCUS_NONE controller_button.enabled_focus_mode = FOCUS_NONE
controller_button.mouse_filter = MOUSE_FILTER_IGNORE controller_button.mouse_filter = MOUSE_FILTER_IGNORE
controller_button.rect_size = button_size controller_button.rect_size = button_size
controller_button.expand_icon = true controller_button.expand_icon = true
return controller_button return controller_button
func _on_ChangeButton_pressed(): func _on_ChangeButton_pressed():
emit_signal('change_button_pressed') emit_signal('change_button_pressed')