package rabbitescape.ui.android;
import android.os.Bundle;
import android.view.SurfaceHolder;
import rabbitescape.engine.LevelWinListener;
import rabbitescape.engine.World;
import rabbitescape.engine.config.Config;
import rabbitescape.render.BitmapCache;
public class Game
{
public final AndroidGameLaunch gameLaunch;
private Thread thread;
public Game(
BitmapCache<AndroidBitmap> bitmapCache,
Config config,
World world,
LevelWinListener winListener,
Bundle savedInstanceState
)
{
gameLaunch = new AndroidGameLaunch(
bitmapCache,
config,
world,
winListener,
savedInstanceState
);
}
public void start( SurfaceHolder surfaceHolder )
{
gameLaunch.graphics.surfaceHolder = surfaceHolder;
gameLaunch.readyToRun();
thread = new Thread( gameLaunch, "GameLaunch" );
thread.start();
}
public void stop()
{
gameLaunch.stopAndDispose();
try
{
thread.join();
}
catch ( InterruptedException e )
{
// Should never happen
e.printStackTrace();
}
thread = null;
gameLaunch.graphics.surfaceHolder = null;
}
}