package info.u250.c2d.tests.parallax;
import info.u250.c2d.engine.Engine;
import info.u250.c2d.engine.EngineDrive;
import info.u250.c2d.engine.SceneStage;
import info.u250.c2d.engine.load.startup.StartupLoading;
import info.u250.c2d.engine.load.startup.WindmillLoading;
import info.u250.c2d.engine.resources.AliasResourceManager;
import info.u250.c2d.graphic.AdvanceSprite;
import info.u250.c2d.graphic.parallax.DefaultParallaxGroupGestureListener;
import info.u250.c2d.graphic.parallax.ParallaxGroup;
import info.u250.c2d.graphic.parallax.ParallaxLayer;
import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
public class ParallaxGroupGestureDetectorTest extends Engine{
@Override
protected EngineDrive onSetupEngineDrive() {
return new EngineX();
}
@Override
protected StartupLoading getStartupLoading() {
return new WindmillLoading();
}
private class EngineX implements EngineDrive{
@Override
public void onResourcesRegister(AliasResourceManager<String> reg) {
reg.textureAtlas("bgAtlas", "data/parallax/bg.atlas");
}
@Override
public void dispose() {}
ParallaxGroup rbg ;
@Override
public EngineOptions onSetupEngine() {
final EngineOptions opt = new EngineOptions(new String[]{"data/parallax/bg.atlas"},480,320);
return opt;
}
@Override
public void onLoadedResourcesCompleted() {
final TextureAtlas bgAtlas = Engine.resource("bgAtlas",TextureAtlas.class);
rbg = new ParallaxGroup(480, 320, new Vector2(50,100));
rbg.addActor(new Image(new AdvanceSprite(bgAtlas.findRegion("bg") )));
rbg.addActor(new ParallaxLayer(rbg,new Image(new AdvanceSprite(bgAtlas.findRegion("cloud") )), new Vector2(0.5f,0),new Vector2(0,1000), new Vector2(0,70)));
rbg.addActor(new ParallaxLayer(rbg,new Image(new AdvanceSprite(bgAtlas.findRegion("front") )), new Vector2(1f,0),new Vector2(0,1000), new Vector2()));
rbg.setScale(Engine.getWidth()/480f);
rbg.setSpeed(0, 0);
final SceneStage stage = new SceneStage(){
@Override
public InputProcessor getInputProcessor() {
DefaultParallaxGroupGestureListener gestureListener=new DefaultParallaxGroupGestureListener(rbg);
rbg.setDefaultGestureDetector(gestureListener);
return rbg.getGestureDetector();
}
@Override
public void render(float delta) {
super.render(delta);
Engine.debugInfo("The parallax background with layer number:"+rbg.getChildren().size+"\n" +
"GestureDetector by make a gesture use your mouse or your finger\n");
}
};
stage.addActor(rbg);
Engine.setMainScene(stage);
}
}
}