Transform functions are only evaluated once at the beginning of Move Transition, and then ignored.

Bug #781398 reported by Jake Staines
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ren'Py
Fix Released
Undecided
Tom Rothamel

Bug Description

If one is using the 'function' parameter to Transform() in order to modify some parameters of the Transform during display, and then one shows a Displayable using both this Transform and also the Move transition, Ren'Py does not display it correctly. The transition appears to evaluate the Transform function only once, right at the beginning of the transition, and then fails to call it again no matter what number was returned from the Transform function - even after the move has completely finished.

Attached is a demonstration of the problem - you will have to copy the 'lucy_orb.png' file from the Ren'Py demo to see it.

Note in particular that in the third part of the demonstration, the orb appears against the left-most side of the screen - this demonstrates that the Transform function is called at least once, as otherwise the orb would be shown with an xpos of 100, as is specified in the Transform itself.

Revision history for this message
Jake Staines (jake-staines) wrote :
Tom Rothamel (renpytom)
Changed in renpy:
status: New → Confirmed
assignee: nobody → Tom Rothamel (renpytom)
Tom Rothamel (renpytom)
Changed in renpy:
milestone: none → 6.14
Revision history for this message
Tom Rothamel (renpytom) wrote :

This will take a rewrite of MoveTransition to fix - probably one that changes its signature.

Right now, MoveTransition gets positions from the old and new displayables, and passes them to a factory function that creates a Move object. In the new version, we will instead have to continuously evaluate the position of the two displayables and then interpolate that position, with time warp.

That's a bigger change than I want to do in 6.13, so this will wait for 6.14.

Memo to self: The signature for this should be something like MoveTransition(duration, enter_transform=None, leave_transform=None, time_warp=None, old=False).

Tom Rothamel (renpytom)
Changed in renpy:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.