Skip to content

Tweening Transform2D borken when initial scale is not (1, 1) #79242

Closed
@romlok

Description

@romlok

Godot version

v4.1.stable.official [9704596] < Steam

System information

Godot v4.1.stable - Debian GNU/Linux trixie/sid trixie - Vulkan (Mobile) - dedicated NVIDIA GeForce GTX 1060 (nvidia) - Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz (6 Threads)

Issue description

When a tween is performed on a Transform2D, where the starting value has a scale which isn't (1, 1), both the position and scale of the intermediate values will be incorrect. However, the correct transform will be applied at the end of the tween:

simplescreenrecorder-2023-07-09_16.02.03.mp4

Steps to reproduce

Eg:

var tween := create_tween()
var start := Transform2D(Vector2.RIGHT, Vector2.DOWN, Vector2(100,100)) * 0.5
var end := Transform2D(Vector2.RIGHT, Vector2.DOWN, Vector2(200, 100))
(tween.tween_property($Tweened, "transform", end, 2.0)
	.from(start)
	)

Minimal reproduction project

Single self-contained scene. Click to start the tween:

tween_transform2d.zip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions