package com.alarmclocksnoozers.runnershigh;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Rect;
import android.media.MediaPlayer;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.os.PowerManager;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.MotionEvent;
import android.view.Window;
import android.view.WindowManager;
import com.alarmclocksnoozers.highscore.HighscoreAdapter;
public class main extends Activity {
PowerManager.WakeLock wakeLock ;
private static long lastCreationTime = 0;
private static final int MIN_CREATION_TIMEOUT = 10000;
//MediaPlayer musicPlayerIntro;
MediaPlayer musicPlayerLoop;
boolean MusicLoopStartedForFirstTime = false;
boolean isRunning = false;
RunnersHighView mGameView = null;
private static final int SLEEP_TIME = 300;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "tag");
wakeLock.acquire();
SoundManager.getInstance();
SoundManager.initSounds(this);
SoundManager.loadSounds();
musicPlayerLoop = MediaPlayer.create(getApplicationContext(), R.raw.gamebackground);
musicPlayerLoop.setLooping(true);
musicPlayerLoop.seekTo(0);
musicPlayerLoop.setVolume(0.5f, 0.5f);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
isRunning = true;
mGameView = new RunnersHighView(getApplicationContext());
setContentView(mGameView);
}
@Override
protected void onDestroy() {
if(Settings.RHDEBUG)
Log.d("debug", "onDestroy main");
isRunning = false;
wakeLock.release();
musicPlayerLoop.release();
SoundManager.cleanup();
if (mGameView != null) mGameView.cleanup();
System.gc();
super.onDestroy();
}
@Override
public void onResume() {
if(Settings.RHDEBUG)
Log.d("debug", "onResume");
wakeLock.acquire();
if(MusicLoopStartedForFirstTime)
musicPlayerLoop.start();
super.onResume();
}
@Override
public void onStop() {
if(Settings.RHDEBUG)
Log.d("debug", "onStop");
super.onStop();
}
@Override
public void onRestart() {
if(Settings.RHDEBUG)
Log.d("debug", "onRestart");
super.onRestart();
}
@Override
public void onPause() {
if(Settings.RHDEBUG)
Log.d("debug", "onPause");
wakeLock.release();
musicPlayerLoop.pause();
super.onPause();
}
public void saveScore(int score) {
Intent myIntent = new Intent (this, HighScoreForm.class);
myIntent.putExtra("score", score);
startActivity (myIntent);
}
public void sleep() {
sleep(SLEEP_TIME);
}
public void sleep(int time) {
try {
Thread.sleep(time);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public class RunnersHighView extends GLSurfaceView implements Runnable {
private Player player = null;
private Level level;
private ParalaxBackground background;
private int width;
private int height;
private Button resetButton = null;
private Bitmap resetButtonImg = null;
private Button saveButton = null;
private Bitmap saveButtonImg = null;
private RHDrawable blackRHD = null;
private Bitmap blackImg = null;
private RHDrawable gameLoadingRHD = null;
private Bitmap gameLoadingImg = null;
private float blackImgAlpha;
private boolean scoreWasSaved = false;
private boolean deathSoundPlayed = false;
private OpenGLRenderer mRenderer = null;
private CounterGroup mCounterGroup;
private CounterDigit mCounterDigit1;
private CounterDigit mCounterDigit2;
private CounterDigit mCounterDigit3;
private CounterDigit mCounterDigit4;
private Bitmap CounterFont = null;;
private Bitmap CounterYourScoreImg = null;;
private RHDrawable CounterYourScoreDrawable = null;;;
public boolean doUpdateCounter = true;
private long timeAtLastSecond;
private int runCycleCounter;
private HighscoreAdapter highScoreAdapter;
private int mTotalHighscores = 0;
private int mHighscore1 = 0;
private int mHighscore2 = 0;
private int mHighscore3 = 0;
private int mHighscore4 = 0;
private int mHighscore5 = 0;
private HighscoreMark mHighscoreMark1 = null;
private HighscoreMark mHighscoreMark2 = null;
private HighscoreMark mHighscoreMark3 = null;
private HighscoreMark mHighscoreMark4 = null;
private HighscoreMark mHighscoreMark5 = null;
private Bitmap mHighscoreMarkBitmap = null;
private RHDrawable mNewHighscore = null;
private int totalScore = 0;
private boolean nineKwasplayed = false;
private boolean gameIsLoading = true;
public RunnersHighView(Context context) {
super(context);
mRenderer = new OpenGLRenderer();
this.setRenderer(mRenderer);
Util.getInstance().setAppContext(context);
Util.getInstance().setAppRenderer(mRenderer);
Thread rHThread = new Thread(this);
rHThread.start();
//
// initialize();
}
public void cleanup() {
if (saveButtonImg != null) saveButtonImg.recycle();
if (blackImg != null) blackImg.recycle();
if (resetButtonImg!= null) resetButtonImg.recycle();
if (background != null) background.cleanup();
if (mHighscoreMarkBitmap != null) mHighscoreMarkBitmap.recycle();
if (level != null) level.cleanup();
if (player != null) player.cleanup();
}
private void initialize() {
if(Settings.RHDEBUG)
Log.d("debug", "initialize begin");
long timeOfInitializationStart = System.currentTimeMillis();
Util.roundStartTime = System.currentTimeMillis();
Context context = Util.getAppContext();
Rect rectgle= new Rect();
Window window= getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
width= display.getWidth();
height= Math.abs(rectgle.top - rectgle.bottom);
if(Settings.RHDEBUG)
Log.d("debug", "displaywidth: " + width + ", displayheight: " + height);
Util.mScreenHeight=height;
Util.mScreenWidth=width;
Util.mWidthHeightRatio=width/height;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inTempStorage = new byte[16*1024];
gameLoadingImg = Util.loadBitmapFromAssets("game_loading.jpg");
gameLoadingRHD = new RHDrawable(0, 0, 1, width, height);
gameLoadingRHD.loadBitmap(gameLoadingImg);
mRenderer.addMesh(gameLoadingRHD);
long currentTime = System.currentTimeMillis();
if (currentTime < lastCreationTime + MIN_CREATION_TIMEOUT) {
long sleeptime = MIN_CREATION_TIMEOUT - (currentTime - lastCreationTime);
lastCreationTime = currentTime;
try {
Thread.sleep(sleeptime);
} catch (InterruptedException e) {
e.printStackTrace();
finish();
}
}
lastCreationTime = System.currentTimeMillis();
background = new ParalaxBackground(width, height);
mRenderer.addMesh(background);
sleep();
try {
background.loadLayerFar(Util.loadBitmapFromAssets("game_background_layer_3.png"));
sleep();
} catch (OutOfMemoryError oome) {
System.gc();
try {
Thread.sleep(MIN_CREATION_TIMEOUT);
background.loadLayerFar(
Util.loadBitmapFromAssets("game_background_layer_3.png"));
sleep();
}catch (OutOfMemoryError e) {
e.printStackTrace();
setResult(1);
finish();
} catch (InterruptedException e) {
setResult(0);
finish();
}
}
try {
background.loadLayerMiddle(Util.loadBitmapFromAssets("game_background_layer_2.png"));
sleep();
} catch (OutOfMemoryError oome) {
System.gc();
try {
Thread.sleep(MIN_CREATION_TIMEOUT);
background.loadLayerMiddle(Util.loadBitmapFromAssets("game_background_layer_2.png"));
sleep();
}catch (OutOfMemoryError e) {
e.printStackTrace();
setResult(1);
finish();
} catch (InterruptedException e) {
setResult(0);
finish();
}
}
try {
background.loadLayerNear(Util.loadBitmapFromAssets("game_background_layer_1.png"));
sleep();
} catch (OutOfMemoryError oome) {
System.gc();
try {
Thread.sleep(MIN_CREATION_TIMEOUT);
background.loadLayerNear(Util.loadBitmapFromAssets("game_background_layer_1.png"));
sleep();
}catch (OutOfMemoryError e) {
e.printStackTrace();
setResult(1);
finish();
} catch (InterruptedException e) {
setResult(0);
finish();
}
}
if(Settings.RHDEBUG)
Log.d("debug", "before addMesh");
resetButtonImg = Util.loadBitmapFromAssets("game_button_play_again.png");
resetButton = new Button(
Util.getPercentOfScreenWidth(72),
height-Util.getPercentOfScreenHeight(18),
-2,
Util.getPercentOfScreenWidth(26),
Util.getPercentOfScreenHeight(13));
resetButton.loadBitmap(resetButtonImg);
mRenderer.addMesh(resetButton);
saveButtonImg =Util.loadBitmapFromAssets("game_button_save.png");
saveButton = new Button(
Util.getPercentOfScreenWidth(42),
height-Util.getPercentOfScreenHeight(18),
-2,
Util.getPercentOfScreenWidth(26),
Util.getPercentOfScreenHeight(13));
saveButton.loadBitmap(saveButtonImg);
mRenderer.addMesh(saveButton);
player = new Player(getApplicationContext(), mRenderer, height);
sleep();
level = new Level(context, mRenderer, width, height);
sleep();
if(Settings.RHDEBUG)
Log.d("debug", "after player creation");
// loadingDialog = new ProgressDialog( context );
// loadingDialog.setProgressStyle(0);
// loadingDialog.setMessage("Loading Highscore ...");
if(Settings.RHDEBUG)
Log.d("debug", "after loading messages");
highScoreAdapter = new HighscoreAdapter(context);
if(Settings.RHDEBUG)
Log.d("debug", "after HighscoreAdapter");
//new counter
CounterYourScoreImg = Util.loadBitmapFromAssets("game_background_score.png");
CounterYourScoreDrawable = new RHDrawable(
Util.getPercentOfScreenWidth(5),
height-Util.getPercentOfScreenHeight(15),
0.9f,
Util.getPercentOfScreenWidth(27),
Util.getPercentOfScreenHeight(10));
CounterYourScoreDrawable.loadBitmap(CounterYourScoreImg);
mRenderer.addMesh(CounterYourScoreDrawable);
if(Settings.RHDEBUG)
Log.d("debug", "after CounterYourScoreDrawable addMesh");
CounterFont = Util.loadBitmapFromAssets("game_numberfont.png");
mCounterGroup = new CounterGroup(
Util.getPercentOfScreenWidth(14),
height-Util.getPercentOfScreenHeight(13.5f),
0.9f, Util.getPercentOfScreenWidth(16),
Util.getPercentOfScreenHeight(6),
25);
if(Settings.RHDEBUG)
Log.d("debug", "after mCounterGroup");
mCounterDigit1 = new CounterDigit(
Util.getPercentOfScreenWidth(19),
height-Util.getPercentOfScreenHeight(13.5f),
0.9f,
Util.getPercentOfScreenWidth(3),
Util.getPercentOfScreenHeight(6));
mCounterDigit1.loadBitmap(CounterFont);
mCounterGroup.add(mCounterDigit1);
mCounterDigit2 = new CounterDigit(
Util.getPercentOfScreenWidth(22),
height-Util.getPercentOfScreenHeight(13.5f),
0.9f,
Util.getPercentOfScreenWidth(3),
Util.getPercentOfScreenHeight(6));
mCounterDigit2.loadBitmap(CounterFont);
mCounterGroup.add(mCounterDigit2);
mCounterDigit3 = new CounterDigit(
Util.getPercentOfScreenWidth(25),
height-Util.getPercentOfScreenHeight(13.5f),
0.9f,
Util.getPercentOfScreenWidth(3),
Util.getPercentOfScreenHeight(6));
mCounterDigit3.loadBitmap(CounterFont);
mCounterGroup.add(mCounterDigit3);
mCounterDigit4 = new CounterDigit(
Util.getPercentOfScreenWidth(28),
height-Util.getPercentOfScreenHeight(13.5f),
0.9f,
Util.getPercentOfScreenWidth(3),
Util.getPercentOfScreenHeight(6));
mCounterDigit4.loadBitmap(CounterFont);
mCounterGroup.add(mCounterDigit4);
mRenderer.addMesh(mCounterGroup);
sleep();
if(Settings.RHDEBUG)
Log.d("debug", "after counter");
blackImg = Bitmap.createBitmap(16, 16, Bitmap.Config.ARGB_8888);
blackRHD = new RHDrawable(0, 0, 1, width, height);
blackImg.eraseColor(-16777216);
blackImgAlpha=1;
blackRHD.setColor(0, 0, 0, blackImgAlpha);
blackRHD.loadBitmap(blackImg);
mRenderer.addMesh(blackRHD);
gameLoadingRHD.z = -1.0f;
mHighscoreMarkBitmap = Util.loadBitmapFromAssets("game_highscoremark.png");
mNewHighscore = new RHDrawable(width/2 - 128, height/2 - 64, -2, 256, 128);
mNewHighscore.loadBitmap(Util.loadBitmapFromAssets("game_new_highscore.png"));
mRenderer.addMesh(mNewHighscore);
if(Settings.showHighscoreMarks)
initHighscoreMarks();
//give the player time to read loading screen and controls
while(System.currentTimeMillis() < timeOfInitializationStart+Settings.TimeForLoadingScreenToBeVisible)
sleep(10);
timeAtLastSecond = System.currentTimeMillis();
runCycleCounter=0;
if(Settings.RHDEBUG)
Log.d("debug", "RunnersHighView initiation ended");
}
public int getAmountOfLocalHighscores() {
highScoreAdapter.open();
Cursor cursor = highScoreAdapter.fetchScores("0");
int amount = cursor.getCount();
highScoreAdapter.close();
return amount;
}
public int getHighscore(long id) {
highScoreAdapter.open();
if (mTotalHighscores >= id)
{
Cursor cursor = highScoreAdapter.getHighscore(id);
String hs = cursor.getString(cursor.getColumnIndexOrThrow(HighscoreAdapter.KEY_SCORE));
highScoreAdapter.close();
return new Integer(hs);
}
else
return 0;
}
@SuppressWarnings("unused")
public void run() {
if(Settings.RHDEBUG)
Log.d("debug", "run method started");
// wait until the intro is over
// this gives the app enough time to load
try{
//loadingDialog.show();
if(Settings.RHDEBUG)
Log.d("debug", "run method in try");
if(Settings.RHDEBUG)
Log.d("debug", "mRenderer.firstFrameDone: " + mRenderer.firstFrameDone);
while(!mRenderer.firstFrameDone)
Thread.sleep(10);
initialize();
long timeAtStart = System.currentTimeMillis();
while (System.currentTimeMillis() < timeAtStart + 2000 && isRunning)
{
blackImgAlpha-=0.005;
blackRHD.setColor(0, 0, 0, blackImgAlpha);
Thread.sleep(10);
}
blackImg.recycle();
gameLoadingImg.recycle();
blackRHD.shouldBeDrawn = false;
gameLoadingRHD.shouldBeDrawn = false;
mRenderer.removeMesh(blackRHD);
mRenderer.removeMesh(gameLoadingRHD);
if(Settings.RHDEBUG)
Log.d("debug", "after fade in");
try {
if(isRunning && !musicPlayerLoop.isPlaying())
musicPlayerLoop.start();
} catch (IllegalStateException e) {
e.printStackTrace();
Log.w(Settings.LOG_TAG, "seems like you startet the game more" +
" than once in a few seconds or canceld the game start");
Log.w(Settings.LOG_TAG, "PLEASE DO NOT DO THIS UNLESS IT IS A STRESS TEST");
return;
}
MusicLoopStartedForFirstTime=true;
}
catch (InterruptedException e)
{
e.printStackTrace();
return;
}
if(Settings.RHDEBUG)
Log.d("debug", "run method after try catch");
blackRHD.z=-1.0f;
blackRHD.setColor(0, 0, 0, 0);
//mRenderer.removeMesh(blackRHD); //TODO: find a way to remove mesh without runtime errors
long timeForOneCycle=0;
long currentTimeTaken=0;
long starttime = 0;
gameIsLoading = false;
if(Settings.RHDEBUG)
Log.d("debug", "run method befor while");
// long debugTime = System.currentTimeMillis(); // FIXME DEBUG TIME FOR VIDEO CAPTURE
Util.roundStartTime = System.currentTimeMillis();
while(isRunning){
starttime = System.currentTimeMillis();
// if (debugTime + 15000 < starttime) sleep(100); // FIXME DEBUG TIME FOR VIDEO CAPTURE
// level.update(); // FIXME remove this line
player.playerSprite.setFrameUpdateTime(
(level.baseSpeedMax+level.extraSpeedMax)*10 -
((level.baseSpeed+level.extraSpeed)*10) +
60 );
if (player.update()) {
if(Settings.RHDEBUG){
currentTimeTaken = System.currentTimeMillis()- starttime;
Log.d("runtime", "time after player update: " + Integer.toString((int)currentTimeTaken));
}
level.update();
if(Settings.RHDEBUG){
currentTimeTaken = System.currentTimeMillis()- starttime;
Log.d("runtime", "time after level update: " + Integer.toString((int)currentTimeTaken));
}
background.update();
if(Settings.RHDEBUG){
currentTimeTaken = System.currentTimeMillis()- starttime;
Log.d("runtime", "time after background update: " + Integer.toString((int)currentTimeTaken));
}
if(Settings.showHighscoreMarks)
updateHighscoreMarks();
} else {
if(player.y < 0){
doUpdateCounter=false;
resetButton.setShowButton(true);
resetButton.z = 1.0f;
saveButton.setShowButton(true);
saveButton.z = 1.0f;
if(!deathSoundPlayed){
SoundManager.playSound(7, 1, 0.5f, 0.5f, 0);
deathSoundPlayed=true;
System.gc(); //do garbage collection
}
if(Settings.showHighscoreMarks){
if (totalScore > mHighscore1)
mNewHighscore.z = 1.0f;
}
}
}
if(player.collidedWithObstacle(level.getLevelPosition()) ){
level.lowerSpeed();
}
if(doUpdateCounter)
{
totalScore = level.getDistanceScore() + player.getBonusScore();
if (Settings.SHOW_FPS) mCounterGroup.tryToSetCounterTo(mRenderer.fps);
else mCounterGroup.tryToSetCounterTo(totalScore);
if(totalScore>=9000 && nineKwasplayed==false)
{
nineKwasplayed=true;
SoundManager.playSound(9, 1, 1000, 1000, 0);
}
}
if(Settings.RHDEBUG){
timeForOneCycle= System.currentTimeMillis()- starttime;
Log.d("runtime", "time after counter update: " + Integer.toString((int)timeForOneCycle));
}
timeForOneCycle= System.currentTimeMillis()- starttime;
if(timeForOneCycle < 10) {
try{ Thread.sleep(10-timeForOneCycle); }
catch (InterruptedException e)
{
e.printStackTrace();
}
}
runCycleCounter++;
if(Settings.RHDEBUG) {
currentTimeTaken = System.currentTimeMillis()- starttime;
Log.d("runtime", "time after thread sleep : " + Integer.toString((int)currentTimeTaken));
}
timeForOneCycle= System.currentTimeMillis()- starttime;
if((System.currentTimeMillis() - timeAtLastSecond) > 1000 && Settings.RHDEBUG)
{
timeAtLastSecond = System.currentTimeMillis();
Log.d("runtime", "run cycles per second: " + Integer.toString(runCycleCounter));
runCycleCounter=0;
}
if(Settings.RHDEBUG){
timeForOneCycle= System.currentTimeMillis()- starttime;
Log.d("runtime", "overall time for this run: " + Integer.toString((int)timeForOneCycle));
}
}
if(Settings.RHDEBUG)
Log.d("debug", "run method ended");
}
private void initHighscoreMarks()
{
mTotalHighscores = getAmountOfLocalHighscores();
if(Settings.RHDEBUG)
Log.d("debug", "mTotalHighscores: " + mTotalHighscores);
// awesome switch usage XD // TODO: remove this comment :D
switch(mTotalHighscores)
{
default:
case 5:
mHighscore5 = getHighscore(5);
if (mHighscoreMark5 == null)
mHighscoreMark5 = new HighscoreMark(mRenderer, mHighscoreMarkBitmap, CounterFont);
mHighscoreMark5.setMarkTo(5, mHighscore5);
mHighscoreMark5.z = 0.0f;
case 4:
mHighscore4 = getHighscore(4);
if (mHighscoreMark4 == null)
mHighscoreMark4 = new HighscoreMark(mRenderer, mHighscoreMarkBitmap, CounterFont);
mHighscoreMark4.setMarkTo(4, mHighscore4);
mHighscoreMark4.z = 0.0f;
case 3:
mHighscore3 = getHighscore(3);
if (mHighscoreMark3 == null)
mHighscoreMark3 = new HighscoreMark(mRenderer, mHighscoreMarkBitmap, CounterFont);
mHighscoreMark3.setMarkTo(3, mHighscore3);
mHighscoreMark3.z = 0.0f;
case 2:
mHighscore2 = getHighscore(2);
if (mHighscoreMark2 == null)
mHighscoreMark2 = new HighscoreMark(mRenderer, mHighscoreMarkBitmap, CounterFont);
mHighscoreMark2.setMarkTo(2, mHighscore2);
mHighscoreMark2.z = 0.0f;
case 1:
mHighscore1 = getHighscore(1);
if(Settings.RHDEBUG)
Log.d("debug", "mHighscore1: " + mHighscore1);
if (mHighscoreMark1 == null)
mHighscoreMark1 = new HighscoreMark(mRenderer, mHighscoreMarkBitmap, CounterFont);
mHighscoreMark1.setMarkTo(1, mHighscore1);
mHighscoreMark1.z = 0.0f;
case 0:
}
}
private void updateHighscoreMarks()
{
switch(mTotalHighscores)
{
default:
case 5:
if (mHighscoreMark5 != null)
{
if (totalScore < mHighscore5)
mHighscoreMark5.x = (mHighscore5 - totalScore) * 10 + player.x;
else
mHighscoreMark5.x = 0;
}
case 4:
if (mHighscoreMark4 != null)
{
if (totalScore < mHighscore4)
mHighscoreMark4.x = (mHighscore4 - totalScore) * 10 + player.x;
else
{
mHighscoreMark4.x = 0;
if (mHighscoreMark5 != null)
mHighscoreMark5.z = -2.0f;
}
}
case 3:
if (mHighscoreMark3 != null)
{
if (totalScore < mHighscore3)
mHighscoreMark3.x = (mHighscore3 - totalScore) * 10 + player.x;
else
{
mHighscoreMark3.x = 0;
if (mHighscoreMark4 != null)
mHighscoreMark4.z = -2.0f;
}
}
case 2:
if (mHighscoreMark2 != null)
{
if (totalScore < mHighscore2)
mHighscoreMark2.x = (mHighscore2 - totalScore) * 10 + player.x;
else
{
mHighscoreMark2.x = 0;
if (mHighscoreMark3 != null)
mHighscoreMark3.z = -2.0f;
}
}
case 1:
if (mHighscoreMark1 != null)
{
if (totalScore < mHighscore1)
mHighscoreMark1.x = (mHighscore1 - totalScore) * 10 + player.x;
else
{
mHighscoreMark1.x = 0;
if (mHighscoreMark2 != null)
mHighscoreMark2.z = -2.0f;
}
}
case 0:
}
}
public boolean onTouchEvent(MotionEvent event) {
if(!gameIsLoading){
if(event.getAction() == MotionEvent.ACTION_UP)
player.setJump(false);
else if(event.getAction() == MotionEvent.ACTION_DOWN){
if (resetButton.getShowButton() || saveButton.getShowButton()) {
if(resetButton.isClicked( event.getX(), Util.getInstance().toScreenY((int)event.getY()) ) ){
System.gc(); //do garbage collection
player.reset();
level.reset();
resetButton.setShowButton(false);
resetButton.z = -2.0f;
saveButton.setShowButton(false);
saveButton.z = -2.0f;
saveButton.x = saveButton.lastX;
mCounterGroup.resetCounter();
scoreWasSaved=false;
deathSoundPlayed=false;
SoundManager.playSound(1, 1);
doUpdateCounter=true;
if(Settings.showHighscoreMarks){
mNewHighscore.z = -2.0f;
initHighscoreMarks();
}
nineKwasplayed = false;
totalScore = 0;
Util.roundStartTime = System.currentTimeMillis();
}
else if(saveButton.isClicked( event.getX(), Util.getInstance().toScreenY((int)event.getY()) ) && !scoreWasSaved){
//save score
saveButton.setShowButton(false);
saveButton.z = -2.0f;
saveButton.lastX = saveButton.x;
saveButton.x = -5000;
saveScore(totalScore);
//play save sound
SoundManager.playSound(4, 1);
scoreWasSaved=true;
}
}
else {
player.setJump(true);
}
}
}
return true;
}
}
}