Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Tween : I'm having 'self' doubt.....

edited April 2013 in Questions Posts: 398

Forgive the pun, but looking for a bit of a 'sanity check' on using Tweens with Classes..

So, as a 'stripped down' example - we can represent 'position' using vec2 within a simple class to hold the x,y coords:

self.pos = vec2(0,0)

and then tween by referencing directly the x index as a target:

subject = self.pos
target =  {x = WIDTH}
tweenID = tween(5, subject, target)

All fine and dandy!

However, how would this work with a single variable and what should 'target' in this instance be?

self.rotate = 0
subject = self.rotate
target = ??????
tweenID = tween(5, subject, target)

I guess the issue is that self.rotate is not 'userdata' (ie vec2 etc) and hence I can't seem to work out the correct syntax or a 'simple' way of representing easily what a 'target' should be.

As a hack, this works fine if a treat pos and rotate as a vec3 (using the z index as the rotate) - but there must be an easier way of tweening a single (non user-data) variable within a class?



  • JohnJohn Admin Mod
    Posts: 779

    Tween is designed to work with properties on any tables, including classes.

    Try this:

    tweenID = tween(5, self, {rotate = 90})

    Numbers in Lua are immutable so you can't use them as the subject of a tween. Instead you use the class as the subject and the properties of the class as the target.

  • Posts: 398

    Nice one John, this worked a treat! Sanity has been restored! :-)

    P.s. Might be useful to add this sort of usage of tweens (via classes) to the docs - I'm sure others will find this useful as well ;-)

Sign In or Register to comment.