Fork Heaps on GitHub
Menu

Demo of Slide

This is a short demo of how slide can be implemented in Heaps. Slide is described as a framework agnostic tweening library. In the sample below we use it to give our h2d.Object (a h2d.Graphics finally) a predefined path to move along.

Slide can be installed with: haxelib install slide or haxelib git slide https://github.com/AndreiRudenko/slide.git

Preview

Code


import slide.Slide;

class SlideLibDemo extends hxd.App {
    static function main() { new SlideLibDemo(); }
    override function init() {
        var g = new h2d.Graphics( s2d );
        g.beginFill( 0xFFFFFF );
        g.drawRect( 0, 0, 50, 50 );
        g.setPosition(60,60);

        var foo = ()->{ trace("Cycle accomplished!"); };
        var fin = ()->{ trace("Slide finished."); };

        Slide.tween( g )
            .to({x:400}, 1.5)
            .to({y:300}, 1  )
            .wait(0.5)
            .to({x:60,y:60}, 0.5)
            .ease(slide.easing.Quad.easeIn)
            .call( (o)->{ foo(); trace(o,o.x,o.y); o.rotate(0.3); } )
            .onComplete( fin )
            .repeat(-1) // -1 = infinity (actually prevents function fin to be called here)
            .start();
    }

    override function update(dt:Float) {
        Slide.step(dt); // tell Slide how many seconds have elapsed
    }
}

Note that in the end we pass our update method's dt parameter on to Slide, thus the latter knows how many time has passed and can adapt it's tweens accordingly.

hxml-file sample when using HashLink

-lib heaps
-lib hlsdl
-lib slide
-main SlideLibDemo
-hl slide_demo.hl