package com.tacoid.superflu; import java.util.ArrayList; import java.util.List; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.InputProcessor; import com.badlogic.gdx.Screen; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Animation; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Image; public class AboutScreen implements Screen, InputProcessor { private static final int VIRTUAL_WIDTH = 1024; private static final int VIRTUAL_HEIGHT = 576; private static AboutScreen instance = null; private Stage stage; private Texture credits; private SuperFlu superflu; private class Dna extends Image { private List<TextureRegion> dna = new ArrayList<TextureRegion>(); private Animation animation; private float stateTime; public Dna() { // TODO Auto-generated method stub for (int i = 1; i <= 10; i++) { dna.add(new TextureRegion(superflu.manager.get("images/dna" + i +".png", Texture.class))); } animation = new Animation(0.05f, dna); stateTime = 0f; } @Override public void draw(SpriteBatch batch, float alpha) { stateTime += Gdx.graphics.getDeltaTime(); TextureRegion currentFrame = animation.getKeyFrame(stateTime, true); batch.draw(currentFrame, 500, -80); } } private AboutScreen() { stage = new Stage(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), false); superflu = SuperFlu.getInstance(); credits = superflu.manager.get("images/credits.png", Texture.class); Texture backgroundTexture = superflu.manager.get("images/fond_carte.png", Texture.class); TextureRegion backgroundTextureRegion = new TextureRegion(backgroundTexture, VIRTUAL_WIDTH, VIRTUAL_HEIGHT); Image imgBackground = new Image(backgroundTextureRegion); imgBackground.touchable = false; stage.addActor(imgBackground); stage.addActor(new Image(credits)); stage.addActor(new Dna()); } public static AboutScreen getInstance() { if (instance == null) { instance = new AboutScreen(); } return instance; } @Override public void dispose() { // TODO Auto-generated method stub } @Override public void hide() { // TODO Auto-generated method stub } @Override public void pause() { // TODO Auto-generated method stub } @Override public void render(float delta) { Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); stage.act(delta); stage.draw(); } @Override public void resize(int width, int height) { stage.setViewport(VIRTUAL_WIDTH, VIRTUAL_HEIGHT, false); stage.getCamera().position.set(VIRTUAL_WIDTH/2, VIRTUAL_HEIGHT/2, 0); } @Override public void resume() { // TODO Auto-generated method stub } @Override public void show() { Gdx.input.setInputProcessor(this); } @Override public boolean keyDown(int key) { if (key == Keys.BACK) { SuperFlu.getInstance().setScreen(MainMenuScreen.getInstance()); return true; } return false; } @Override public boolean keyTyped(char arg0) { // TODO Auto-generated method stub return false; } @Override public boolean keyUp(int arg0) { // TODO Auto-generated method stub return false; } @Override public boolean scrolled(int arg0) { // TODO Auto-generated method stub return false; } @Override public boolean touchDown(int arg0, int arg1, int arg2, int arg3) { SuperFlu.getInstance().setScreen(MainMenuScreen.getInstance()); return true; } @Override public boolean touchDragged(int arg0, int arg1, int arg2) { // TODO Auto-generated method stub return false; } @Override public boolean touchMoved(int arg0, int arg1) { // TODO Auto-generated method stub return false; } @Override public boolean touchUp(int arg0, int arg1, int arg2, int arg3) { return false; } }