GAME DESIGN IN LIBGDX

GUIDE – GAME STATE/SLIDESHOW

separator-blank.png

SLIDESHOW

We can create a simple slideshow setup.  Of course, each slide can contain full games themselves or simple still images.

STRATEGY EXPLANATION

We have an integer that keeps track of the current gameState.  The render method is separated into different sections that are executed only if they correspond to the current gameState.

Here is a pseudocode:

     Clear the screen
     If game state is 1
         Draw corresponding information
     If game state is 2

         Draw corresponding information

    

CODE

public class Slideshow extends ApplicationAdapter

{

   private SpriteBatch spriteRenderer;

   private BitmapFont font;

  

   private int gameState;

 

   @Override

   public void create ()

   {

      spriteRenderer = new SpriteBatch(); 

      FileHandle myFile3 = Gdx.files.internal("PressStart2p.fnt");

      font = new BitmapFont(myFile3);

     

      gameState = 1;

   }

 

   @Override

   public void render()

   { 

        //Update gameState variable

        if(Gdx.input.isKeyJustPressed(Input.Keys.SPACE))

        {

              gameState++;

        }

        

        //Clear the screen

        Gdx.gl.glClearColor(0, 0, 0, 1);

        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

       

        //Render according to state

        if (gameState == 1)

        {

              spriteRenderer.begin();

              font.draw(spriteRenderer,"Slide 1", 150, 400);

              spriteRenderer.end();

        }  

        else if (gameState == 2)

        {

              spriteRenderer.begin();

              font.draw(spriteRenderer,"Slide 2", 150, 400);

              spriteRenderer.end();

        }

        else if (gameState == 3)

        {

              spriteRenderer.begin();

              font.draw(spriteRenderer,"Slide 3", 150, 400);

              spriteRenderer.end();

        }

        else

        {

              spriteRenderer.begin();

              font.draw(spriteRenderer,"Last Slide", 80, 400);

              spriteRenderer.end();

        }

   }
}


JAR FILE

Click here.


separator-campeau.png