package info.u250.c2d.tests.animations; import info.u250.c2d.engine.Engine; import info.u250.c2d.engine.EngineDrive; import info.u250.c2d.engine.Scene; import info.u250.c2d.engine.resources.AliasResourceManager; import info.u250.c2d.graphic.AnimationSprite; import com.badlogic.gdx.InputAdapter; import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.graphics.g2d.TextureRegion; public class AnimationSpriteLoopWithTimesTest extends Engine { @Override protected EngineDrive onSetupEngineDrive() { return new EngineX(); } private class EngineX implements EngineDrive{ @Override public void dispose() {} AnimationSprite sprite ; boolean toggle = false; @Override public EngineOptions onSetupEngine() { return new EngineOptions(new String[]{"data/animationsprite/"},480,320); } @Override public void onResourcesRegister(AliasResourceManager<String> reg) { reg.textureAtlas("Anim", "data/animationsprite/turkey.atlas"); } @Override public void onLoadedResourcesCompleted() { TextureAtlas atlas = Engine.resource("Anim"); sprite = new AnimationSprite(new float[]{ 0.1f, 0.1f, 0.02f, 0.05f, 0.04f, 0.05f, 0.09f, }, new TextureRegion[]{ atlas.findRegion("fly1"), atlas.findRegion("fly2"), atlas.findRegion("fly3"), atlas.findRegion("fly4"), atlas.findRegion("fly5"), atlas.findRegion("fly6"), atlas.findRegion("fly7"), atlas.findRegion("fly8"), }); sprite.setPosition((Engine.getWidth()-sprite.getWidth())/2, (Engine.getHeight()-sprite.getHeight())/2); sprite.setLoopTimes(2); sprite.setWaitingIndex(4); Engine.setMainScene(new Scene() { @Override public void render(float delta) { Engine.getSpriteBatch().begin(); sprite.render( delta); Engine.getSpriteBatch().end(); Engine.debugInfo( "animation with different keyframes duration .\n touch the screen to replay the animation .\n touch the sprite to handle the onClick event "); } @Override public void update(float delta) {} @Override public InputProcessor getInputProcessor() { return new InputAdapter(){ @Override public boolean touchUp(int x, int y, int pointer, int button) { toggle = !toggle; if(toggle){ }else{ sprite.replay(); } return super.touchUp(x, y, pointer, button); } }; } @Override public void hide() { } @Override public void show() { } }); } } }