Blobby/src/Levels/TutorialThingy.gd
2023-06-25 21:27:54 +02:00

39 lines
1.3 KiB
GDScript

extends Sprite
var screen_size: Vector2
var velocity = Vector2(1,1)
onready var blobby = $"%Blobby"
onready var cam = $"%BlobbyCam"
func _ready() -> void:
$ControllerButton.path = "move_right"
screen_size = cam.screen_rect
func _process(delta: float) -> void:
# 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