Subversion Repositories AndroidProjects

Rev

Rev 219 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.gebauz.Bauzoid.app;

import com.badlogic.gdx.ApplicationListener;

/** Base class for applications using Bauzoid engine. */
public abstract class BauzoidApp implements ApplicationListener
{
        protected Game mGame = null;
        private long mSystemTimeMs = System.currentTimeMillis();
       
        public BauzoidApp()
        {
        }
       
        @Override
        public void create()
        {
                mGame = new Game();
                mGame.init();
               
                initGame();
               
                mSystemTimeMs = System.currentTimeMillis();
        }

        @Override
        public void dispose()
        {
                exitGame();
               
                mGame.exit();
                mGame = null;
        }

        @Override
        public void pause()
        {
                mGame.pause();
        }

        @Override
        public void resume()
        {
                mGame.resume();
        }

        @Override
        public void resize(int w, int h)
        {
                mGame.resize(w, h);
        }
       
        @Override
        public void render()
        {
                long currentTimeMs = System.currentTimeMillis();
                long deltaTimeMs = currentTimeMs - mSystemTimeMs;
                mSystemTimeMs = currentTimeMs;

                mGame.update((float)deltaTimeMs / 1000.0f);

                mGame.render();
        }

        /** Called after the engine internals have been initialized - this is the point to kick off the initial game state. */
        public abstract void initGame();
       
        /** Called before the engine internals are cleaned up. */
        public abstract void exitGame();
       
        /** Get the instance of the game. */
        public Game getGame()
        {
                return mGame;
        }

}