From 3cbc26b42d7f9a52165b9b863d6dc47655cf0b0c Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 20 Feb 2014 11:44:48 +0100 Subject: [PATCH] Gamemenu intergration. pause function working again. --- src/mangavalk/tetris/CanvasView.java | 16 ++-- src/mangavalk/tetris/GameMenu.java | 78 +++++++++++--------- src/mangavalk/tetris/GamePlay.java | 55 +++++--------- src/mangavalk/tetris/GameStateInterface.java | 31 +++++--- 4 files changed, 94 insertions(+), 86 deletions(-) diff --git a/src/mangavalk/tetris/CanvasView.java b/src/mangavalk/tetris/CanvasView.java index ec7c04d..5b87bc2 100644 --- a/src/mangavalk/tetris/CanvasView.java +++ b/src/mangavalk/tetris/CanvasView.java @@ -49,11 +49,11 @@ public class CanvasView extends View // Game Start. First Load ((GamePlay)Gameplay).SetStartLevel(startLevel); - ((GamePlay)Gameplay).SetGameState(GamePlay.GS_LOAD); + ((GamePlay)Gameplay).SetGameState(GamePlay.GS_LOAD, true); // Start Game. if (((GamePlay)Gameplay).GetGameState() == GameStateInterface.GS_READY) - ((GamePlay)Gameplay).SetGameState(GameStateInterface.GS_START); + ((GamePlay)Gameplay).SetGameState(GameStateInterface.GS_START, true); } @Override @@ -77,11 +77,11 @@ public class CanvasView extends View gameStateChanged(gameState); } - public void OnGameStateChanged(int gameState, boolean isPostBack) + /*public void OnGameStateChanged(int gameState, boolean isPostBack) { if (isPostBack == false) gameStateChanged(gameState); - } + }*/ private void gameStateChanged(int gameState) { @@ -94,10 +94,16 @@ public class CanvasView extends View } case GameStateInterface.GS_PAUSED: { - //Gamemenu.SetGameState(Foreground.GetGameState(), true); + Gamemenu.SetGameState(Foreground.GetGameState(), true); Foreground = Gamemenu; break; } + case GameStateInterface.GS_RESUME: + { + Gameplay.SetGameState(Foreground.GetGameState(), true); + Foreground = Gameplay; + break; + } case GameStateInterface.GS_GAMEOVER: { Foreground = Gamemenu; diff --git a/src/mangavalk/tetris/GameMenu.java b/src/mangavalk/tetris/GameMenu.java index d901feb..c5dbd8c 100644 --- a/src/mangavalk/tetris/GameMenu.java +++ b/src/mangavalk/tetris/GameMenu.java @@ -1,6 +1,5 @@ package mangavalk.tetris; -import android.app.Activity; import android.graphics.Canvas; public class GameMenu extends GameStateInterface @@ -13,28 +12,37 @@ public class GameMenu extends GameStateInterface // Methods. @Override - public void DrawFrame(Canvas canvas) { - // TODO Auto-generated method stub - - } - - @Override - public void SendMove(float x, float y, boolean pointerUp) { - // TODO Auto-generated method stub - - } - - @Override - public void SetGameState(int gameState) + public void DrawFrame(Canvas canvas) { - GameState = gameState; + // TODO Auto-generated method stub switch(GameState) { - + case GS_PAUSED: + { + ShowPauseMenu(); + break; + } } - canvasView.OnGameStateChanged(GameState); + //canvasView.postInvalidate(); + } + + @Override + public void SendMove(float x, float y, boolean pointerUp) + { + // TODO Auto-generated method stub + switch(GameState) + { + case GS_PAUSED: + { + if (!pointerUp) + { + SetGameState(GS_RESUME, false); + } + break; + } + } } @Override @@ -44,10 +52,15 @@ public class GameMenu extends GameStateInterface switch(GameState) { - + case GS_PAUSED: + { + canvasView.postInvalidate(); + break; + } } - canvasView.OnGameStateChanged(GameState, isPostBack); + if (!isPostBack) + canvasView.OnGameStateChanged(GameState); } @Override @@ -56,16 +69,11 @@ public class GameMenu extends GameStateInterface } + // Set @Override - public void SetActivity(Activity activity) { - // TODO Auto-generated method stub - - } - - @Override - public void SetCanvas(CanvasView _CanvasView) { - // TODO Auto-generated method stub - + public int GetGameState() + { + return GameState; } @Override @@ -74,13 +82,11 @@ public class GameMenu extends GameStateInterface } - @Override - public int GetGameState() { - // TODO Auto-generated method stub - return 0; - } - // Internal. - CanvasView canvasView; - Activity activity = null; + private void ShowPauseMenu() + { + // TODO Auto-generated method stub + + + } } diff --git a/src/mangavalk/tetris/GamePlay.java b/src/mangavalk/tetris/GamePlay.java index fc4a9d9..2bb4c36 100644 --- a/src/mangavalk/tetris/GamePlay.java +++ b/src/mangavalk/tetris/GamePlay.java @@ -33,7 +33,7 @@ public class GamePlay extends GameStateInterface { mp.pause(); - SetGameState(GS_PAUSED); + SetGameState(GS_PAUSED, false); } @Override @@ -52,7 +52,7 @@ public class GamePlay extends GameStateInterface else { mp.start(); - SetGameState(GS_PLAYING); + SetGameState(GS_PLAYING, false); } } } @@ -69,28 +69,6 @@ public class GamePlay extends GameStateInterface } } - @Override - public void SetGameState(int gameState) - { - GameState = gameState; - - switch(GameState) - { - case GS_LOAD: - { - Load(); - break; - } - case GS_START: - { - StartGame(); - break; - } - } - - canvasView.OnGameStateChanged(GameState); - } - @Override public void SetGameState(int gameState, boolean isPostBack) { @@ -108,9 +86,15 @@ public class GamePlay extends GameStateInterface StartGame(); break; } + case GS_RESUME: + { + Resume(); + break; + } } - canvasView.OnGameStateChanged(GameState, isPostBack); + if (!isPostBack) + canvasView.OnGameStateChanged(GameState); } // Set @@ -144,10 +128,6 @@ public class GamePlay extends GameStateInterface return GameState; } - // Internal. - CanvasView canvasView; - Activity activity = null; - // Variabelen Resources r; @@ -480,7 +460,7 @@ public class GamePlay extends GameStateInterface mp.setLooping(true); mp.start(); - SetGameState(GS_PLAYING); + SetGameState(GS_PLAYING, false); handler.removeCallbacksAndMessages(null); handler.postDelayed(runnable, 100); @@ -488,7 +468,7 @@ public class GamePlay extends GameStateInterface private void Load() { - SetGameState(GS_LOADING); + SetGameState(GS_LOADING, false); // Set Display Info. Display display = activity.getWindowManager().getDefaultDisplay(); @@ -515,7 +495,7 @@ public class GamePlay extends GameStateInterface // Audio mp = MediaPlayer.create(activity, R.raw.tetris_a); - SetGameState(GS_READY); + SetGameState(GS_READY, false); } private void LoadSprites() @@ -1360,8 +1340,7 @@ public class GamePlay extends GameStateInterface onPause(); else { - mp.start(); - SetGameState(GS_PLAYING); + SetGameState(GS_RESUME, false); } } } @@ -1378,6 +1357,12 @@ public class GamePlay extends GameStateInterface } } + private void Resume() + { + mp.start(); + SetGameState(GS_PLAYING, false); + } + private void InputsGamePlaying(float x, float y, boolean Released) { int moveX = (int)((x / Width) * 90); @@ -1460,7 +1445,7 @@ public class GamePlay extends GameStateInterface //spawn new block if (!SpawnBlock()) { - SetGameState(GS_GAMEOVER); + SetGameState(GS_GAMEOVER, false); mp.stop(); canvasView.postInvalidate(); diff --git a/src/mangavalk/tetris/GameStateInterface.java b/src/mangavalk/tetris/GameStateInterface.java index fa9e732..3f8ec73 100644 --- a/src/mangavalk/tetris/GameStateInterface.java +++ b/src/mangavalk/tetris/GameStateInterface.java @@ -9,29 +9,40 @@ public abstract class GameStateInterface // GameState Parameters final static int GS_STOPPED = 0; - final static int GS_LOADING = 1; - final static int GS_PLAYING = 2; - final static int GS_GAMEOVER = 3; - final static int GS_PAUSED = 4; - final static int GS_START = 5; - final static int GS_LOAD = 6; - final static int GS_READY = 7; + final static int GS_LOADING = 1; + final static int GS_PLAYING = 2; + final static int GS_GAMEOVER = 3; + final static int GS_PAUSED = 4; + final static int GS_START = 5; + final static int GS_LOAD = 6; + final static int GS_READY = 7; + final static int GS_RESUME = 8; + + // Variabelen. + CanvasView canvasView; + Activity activity = null; // Methods. public abstract void DrawFrame(Canvas canvas); public abstract void SendMove(float x,float y, boolean pointerUp); - public abstract void SetGameState(int gameState); + //public abstract void SetGameState(int gameState); public abstract void SetGameState(int gameState, boolean isPostBack); public abstract void onPause(); // SetParameters. - public abstract void SetActivity(Activity activity); + public void SetCanvas(CanvasView _CanvasView) + { + canvasView = _CanvasView; + } - public abstract void SetCanvas(CanvasView _CanvasView); + public void SetActivity(Activity _Activity) + { + activity = _Activity; + } public abstract void SetPayedVersion(boolean payedVersion);