Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(1 edit)

First I would like to thank for the asset. I have a question though. Would it be possible to control the change of the variable on each step? So basically I would like to give to the tweener the time/steps and ease control but keep the changing of the variable, for example in a tween step callback script. That script would accept start and end position, duration and progress of a particular tween execution and would set/return the tweening variable value for the particular step (similarly like the To method in DOTween library for unity, if you are familiar).

Thank you

Darius

Hey! I am having some trouble understanding exactly what you need. Would it be possible to show an example of code from Unity and the DOTween library, and I could try to translate it to GameMaker and TweenGMS :)

Hi 8BitWarrior. I want to achieve the following. I have an object with triangle shape sprite and I need to rotate an instance of it around any of the vertices depending on the user action. I can not use sprite origin to do that, by dynamically changing the sprite origin and then rotating the sprite, for it will affect the origins of all other instances of the object. But I want to animate that rotation and this means that I need to calculate the instance position and rotation for each step of the move. For that I want the tweener to call my script 30 or 60 times and I will move the instance in code rather than allowing it to lerp between start and end value and move the instance automatically. This i because my trajectory is not  a line, but a curve. My script would accept the instance id, start and end value and the progress value, from them I can calculate the exact position and rotation.

This is easily achievable by DOTWeen library in Unity (http://dotween.demigiant.com/getstarted.php):

Please see the following script (C#):

public static Tween Rotate(Transform target, Vector3 rotationPoint, float angle, float duration)
        {
            var angleRotated = 0f;
            return DOTween.To(
                () => angleRotated,
                newAngle =>
                {
                    // This is a custom function which calculates the position and then moves the object to it
                    GameObjectHelpers.RotateAroundLocal(target, rotationPoint, newAngle - angleRotated);
                    angleRotated = newAngle;
                },
                angle,
                duration
            );

        }

Thanks in advance       

Hey, Darius.

Sorry for the SUPER late reply! Did you ever find a solution to this, or can I still be of any help?

Let me know :)

-Stephen