1234567891011121314151617181920 |
- extends Node2D
- var viewport_initial_size = Vector2()
- @onready var viewport = $SubViewport
- @onready var viewport_sprite = $ViewportSprite
- func _ready():
- $AnimatedSprite2D.play()
- get_viewport().size_changed.connect(self._root_viewport_size_changed)
- viewport_initial_size = viewport.size
- # Called when the root's viewport size changes (i.e. when the window is resized).
- # This is done to handle multiple resolutions without losing quality.
- func _root_viewport_size_changed():
- # The viewport is resized depending on the window height.
- # To compensate for the larger resolution, the viewport sprite is scaled down.
- viewport.size = Vector2.ONE * get_viewport().size.y
- viewport_sprite.scale = Vector2.ONE * viewport_initial_size.y / get_viewport().size.y
|