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.AdvanceSprite; import info.u250.c2d.graphic.Analog; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.Vector2; public class AnalogTest extends Engine { @Override protected EngineDrive onSetupEngineDrive() { return new EngineX(); } private class EngineX implements EngineDrive{ @Override public void onResourcesRegister(AliasResourceManager<String> reg) { reg.texture("logo", "data/c2d.png"); reg.texture("ControlBase", "data/analog/control-base.png"); reg.texture("ControlKnob", "data/analog/control-knob.png"); reg.object("logoSprite",new AdvanceSprite(Engine.resource("logo",Texture.class))); } @Override public void dispose() {} @Override public EngineOptions onSetupEngine() { EngineOptions opt = new EngineOptions(new String[]{ "data/c2d.png", "data/analog" },800,480); opt.resizeSync = false; return opt ; } AdvanceSprite sprite ; Analog analog ; @Override public void onLoadedResourcesCompleted() { sprite = Engine.resource("logoSprite"); sprite.setPosition(Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2); analog = new Analog( new AdvanceSprite(Engine.resource("ControlBase",Texture.class)), new AdvanceSprite(Engine.resource("ControlKnob",Texture.class)), new Vector2(100,50)); Engine.setMainScene(new Scene() { @Override public void update(float delta) {} @Override public void hide() {} @Override public void show() {} @Override public void render(float delta) { Engine.getSpriteBatch().begin(); sprite.setPosition( Engine.getWidth()/2+analog.getAmount()*Engine.getWidth()/2*(float)Math.cos(analog.getAngle()), Engine.getHeight()/2+analog.getAmount()*Engine.getHeight()/2*(float)Math.sin(analog.getAngle())); sprite.draw(Engine.getSpriteBatch()); analog.render(delta); Engine.getSpriteBatch().end(); Engine.debugInfo("by touch the Thumbpad .You can see the change of this. \n" + "the amount is :"+analog.getAmount()+",\n" + "the angle is :"+analog.getAngle()*MathUtils.radiansToDegrees); } @Override public InputProcessor getInputProcessor() { return analog; } }); } } }