- Edited
Hi guys, all I wanna do its simple: While app window size changed, resize the Node2D at same time. My nodes are:
I wanna achieve is, when view_ratio < design_ratio
And when view_ratio > design_ratio
My code was:
extends Node
var designSize:Vector2 = Vector2.ONE
var viewportSize:Vector2 = Vector2.ONE
func _ready():
designSize = Vector2(ProjectSettings.get_setting("display/window/size/viewport_width"), ProjectSettings.get_setting("display/window/size/viewport_height"))
self.get_viewport().size_changed.connect(onResized)
self.get_viewport().size_changed.emit()
func onResized():
viewportSize = self.get_viewport().size
func _process(delta):
var design_ratio:float = designSize.x / designSize.y
var view_ratio:float = viewportSize.x / viewportSize.y
var scale = Vector2.ONE
if view_ratio < design_ratio:
scale = Vector2.ONE * designSize.x / viewportSize.x
elif view_ratio > design_ratio:
scale = Vector2.ONE * designSize.y / viewportSize.y
$Node2D.scale = scale
$Node2D.position.x = (designSize.x * scale.x - viewportSize.x) * .5
And result is totally mess, what Im go wrong? Plz help, Thx guys