package com.niw.kuttypanda;
import java.io.IOException;
import org.andengine.AndEngine;
import org.andengine.engine.camera.Camera;
import org.andengine.engine.handler.timer.ITimerCallback;
import org.andengine.engine.handler.timer.TimerHandler;
import org.andengine.engine.options.EngineOptions;
import org.andengine.engine.options.ScreenOrientation;
import org.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.andengine.entity.scene.Scene;
import org.andengine.opengl.view.RenderSurfaceView;
import org.andengine.ui.activity.BaseGameActivity;
import android.view.KeyEvent;
import android.widget.RelativeLayout;
import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.ads.AdView;
import com.niw.kuttypanda.common.Constants;
import com.niw.kuttypanda.manager.ResourcesManager;
import com.niw.kuttypanda.manager.SceneManager;
public class GameActivity extends BaseGameActivity{
public Camera camera;
private RelativeLayout relativeLayout;
private AdView adView;
private AdRequest adRequest;
private Camera MyCamera;
@Override
public EngineOptions onCreateEngineOptions() {
this.camera = new Camera(0, 0, Constants.width, Constants.height);
SQLiteDatabaseAdapter.setContext(this);
final EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, new RatioResolutionPolicy(Constants.width, Constants.height), this.camera);
engineOptions.getAudioOptions().setNeedsMusic(true).setNeedsSound(true);
return engineOptions;
}
@Override
protected void onSetContentView() {
relativeLayout = new RelativeLayout(this);
final RelativeLayout.LayoutParams relativeLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);
if (!AndEngine.isDeviceSupported()) {
Thread thread = new Thread() {
@Override
public void run() {
try {
Thread.sleep(3500);
android.os.Process.killProcess(android.os.Process.myPid());
} catch (InterruptedException e) {
}
}
};
this.toastOnUIThread("This device does not support AndEngine GLES2, so this game will not work. Sorry.");
finish();
thread.start();
this.setContentView(relativeLayout, relativeLayoutParams);
} else {
this.mRenderSurfaceView = new RenderSurfaceView(this);
mRenderSurfaceView.setRenderer(mEngine, this);
relativeLayout.addView(mRenderSurfaceView, GameActivity.createSurfaceViewLayoutParams());
try {
adView = new AdView(this, AdSize.BANNER, "a15323f3a1c9dee");
adView.setTag("adView");
adView.refreshDrawableState();
adView.setVisibility(AdView.VISIBLE);
adRequest = new AdRequest();
adView.loadAd(adRequest);
AdView.LayoutParams adViewParams = new AdView.LayoutParams(AdView.LayoutParams.WRAP_CONTENT, AdView.LayoutParams.WRAP_CONTENT);
adViewParams.addRule(AdView.ALIGN_PARENT_BOTTOM);
relativeLayout.addView(adView, adViewParams);
} catch (Exception e) {
}
this.setContentView(relativeLayout, relativeLayoutParams);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
SceneManager.getInstance().getCurrentScene().onBackKeyPressed();
}
return false;
}
@Override
public void onCreateResources(OnCreateResourcesCallback pOnCreateResourcesCallback)
throws Exception {
ResourcesManager.prepareManager(mEngine, this, camera, getVertexBufferObjectManager());
pOnCreateResourcesCallback.onCreateResourcesFinished();
}
@Override
public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) throws Exception {
SceneManager.getInstance().createSplashScene(pOnCreateSceneCallback);
}
@Override
public void onPopulateScene(Scene pScene, OnPopulateSceneCallback pOnPopulateSceneCallback) throws IOException
{
mEngine.registerUpdateHandler(new TimerHandler(2f, new ITimerCallback()
{
public void onTimePassed(final TimerHandler pTimerHandler)
{
mEngine.unregisterUpdateHandler(pTimerHandler);
SceneManager.getInstance().createMenuScene();
}
}));
pOnPopulateSceneCallback.onPopulateSceneFinished();
}
@Override
protected void onDestroy()
{
super.onDestroy();
System.exit(0);
}
}