Theoretically, it 'should' actually return a dict mapping properties together based upon the widget id within the screen...
It is defined in /renpy-{version}-source/renpy/display/screen.py around line 1200
and end with an output along the lines of:
Code: Select all
rv = s.widget_properties.get(id, None) # s is the screen
return rv if rv else {}
You might though, find more information scouting down from the actual screen and following attributes as you see fit
screen_props = get_screen('screen_name').widget_properties
(all screen based functions and classes are defined in the file mentioned, so maybe look around for anything useful)
Note though, a widget with a transform used upon it will rarely if ever have its own values for a parameter changed. Instead, the transform will wrap the widget and the transform parameters will be altered. In most transforms, other sibling and child transforms will also be spawned to handle before and after update changes... It gets pretty tricky to locate a transform that is altering a certain widget while still using ATL.
e.g.
Image A uses linear 1.0 xpos 200
A transform will be created wrapping Image A
This might just handle each movement step or it might create a new transform every time it is called and add/remove that new transform from the process stack for the next screen update
It gets pretty messy if you are dir() ing a transform while it plays and trying to guess which child transform is doing what...
If you manage to find how to get the positional properties of a widget while it undergoes a transform, please let me (and everyone else) know...
I was 'briefly' trying this on a self-aware directional sprite that ripped a spite-sheet and then was meant to just automatically display the correct individual sprite by working out where it was on the screen and where it was last... so if it had moved one pixel north, it would show the north sprite one step higher than previous
Good luck