changed implementation a little from interface to abstract.

This commit is contained in:
Administrator
2014-02-19 16:39:28 +01:00
parent adb19d7e82
commit 915abd8853
4 changed files with 2073 additions and 1977 deletions
+23
View File
@@ -12,6 +12,9 @@ public class CanvasView extends View
// Variabelen // Variabelen
Resources r; Resources r;
GameStateInterface Foreground = null;
GameStateInterface Background = null;
// Score. // Score.
public int startLevel = 0; public int startLevel = 0;
@@ -23,6 +26,8 @@ public class CanvasView extends View
super(context); super(context);
super.setBackgroundColor(Color.BLACK); super.setBackgroundColor(Color.BLACK);
Foreground = new GamePlay();
} }
public void SetActivity(Activity activity) public void SetActivity(Activity activity)
@@ -31,6 +36,7 @@ public class CanvasView extends View
GamePlay.Instance.SetCanvas(this); GamePlay.Instance.SetCanvas(this);
GamePlay.Instance.SetStartLevel(startLevel); GamePlay.Instance.SetStartLevel(startLevel);
GamePlay.Instance.SetPayedVersion(PayedVersion); GamePlay.Instance.SetPayedVersion(PayedVersion);
GamePlay.Instance.SetGameState(GamePlay.GS_LOAD); GamePlay.Instance.SetGameState(GamePlay.GS_LOAD);
// Start Game. // Start Game.
@@ -53,4 +59,21 @@ public class CanvasView extends View
{ {
GamePlay.Instance.SendMove(x, y, pointerUp); GamePlay.Instance.SendMove(x, y, pointerUp);
} }
public void OnGameStateChanged(int gameState)
{
switch(gameState)
{
case GameStateInterface.GS_PAUSED:
{
break;
}
case GameStateInterface.GS_GAMEOVER:
{
break;
}
}
}
} }
+73
View File
@@ -0,0 +1,73 @@
package mangavalk.tetris;
import android.app.Activity;
import android.graphics.Canvas;
public class GameMenu extends GameStateInterface
{
// Instance.
public static GameMenu Instance = new GameMenu();
// GameState.
protected int GameState = GS_STOPPED;
// 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)
{
GameState = gameState;
switch(GameState)
{
}
canvasView.OnGameStateChanged(GameState);
}
@Override
public void onPause() {
// TODO Auto-generated method stub
}
@Override
public void SetActivity(Activity activity) {
// TODO Auto-generated method stub
}
@Override
public void SetCanvas(CanvasView _CanvasView) {
// TODO Auto-generated method stub
}
@Override
public void SetPayedVersion(boolean payedVersion) {
// TODO Auto-generated method stub
}
@Override
public int GetGameState() {
// TODO Auto-generated method stub
return 0;
}
// Internal.
CanvasView canvasView;
Activity activity = null;
}
+13 -11
View File
@@ -17,10 +17,10 @@ import android.view.Display;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.TimerTask; import java.util.TimerTask;
public class GamePlay implements GameStateInterface public class GamePlay extends GameStateInterface
{ {
// Instance. // Instance.
public static GameStateInterface Instance = new GamePlay(); public static GamePlay Instance = new GamePlay();
// GameState. // GameState.
protected int GameState = GS_STOPPED; protected int GameState = GS_STOPPED;
@@ -36,7 +36,7 @@ public class GamePlay implements GameStateInterface
{ {
mp.pause(); mp.pause();
GameState = GS_PAUSED; SetGameState(GS_PAUSED);
} }
@Override @Override
@@ -55,7 +55,7 @@ public class GamePlay implements GameStateInterface
else else
{ {
mp.start(); mp.start();
GameState = GS_PLAYING; SetGameState(GS_PLAYING);
} }
} }
} }
@@ -73,7 +73,8 @@ public class GamePlay implements GameStateInterface
} }
@Override @Override
public void SetGameState(int gameState) { public void SetGameState(int gameState)
{
GameState = gameState; GameState = gameState;
switch(GameState) switch(GameState)
@@ -89,6 +90,8 @@ public class GamePlay implements GameStateInterface
break; break;
} }
} }
canvasView.OnGameStateChanged(GameState);
} }
// Set // Set
@@ -104,7 +107,6 @@ public class GamePlay implements GameStateInterface
activity = _Activity; activity = _Activity;
} }
@Override
public void SetStartLevel(int StartLevel) public void SetStartLevel(int StartLevel)
{ {
startLevel = StartLevel; startLevel = StartLevel;
@@ -459,7 +461,7 @@ public class GamePlay implements GameStateInterface
mp.setLooping(true); mp.setLooping(true);
mp.start(); mp.start();
GameState = GS_PLAYING; SetGameState(GS_PLAYING);
handler.removeCallbacksAndMessages(null); handler.removeCallbacksAndMessages(null);
handler.postDelayed(runnable, 100); handler.postDelayed(runnable, 100);
@@ -467,7 +469,7 @@ public class GamePlay implements GameStateInterface
private void Load() private void Load()
{ {
GameState = GS_LOADING; SetGameState(GS_LOADING);
// Set Display Info. // Set Display Info.
Display display = activity.getWindowManager().getDefaultDisplay(); Display display = activity.getWindowManager().getDefaultDisplay();
@@ -494,7 +496,7 @@ public class GamePlay implements GameStateInterface
// Audio // Audio
mp = MediaPlayer.create(activity, R.raw.tetris_a); mp = MediaPlayer.create(activity, R.raw.tetris_a);
GameState = GS_READY; SetGameState(GS_READY);
} }
private void LoadSprites() private void LoadSprites()
@@ -1340,7 +1342,7 @@ public class GamePlay implements GameStateInterface
else else
{ {
mp.start(); mp.start();
GameState = GS_PLAYING; SetGameState(GS_PLAYING);
} }
} }
} }
@@ -1439,7 +1441,7 @@ public class GamePlay implements GameStateInterface
//spawn new block //spawn new block
if (!SpawnBlock()) if (!SpawnBlock())
{ {
GameState = GS_GAMEOVER; SetGameState(GS_GAMEOVER);
mp.stop(); mp.stop();
canvasView.postInvalidate(); canvasView.postInvalidate();
+17 -19
View File
@@ -3,36 +3,34 @@ package mangavalk.tetris;
import android.app.Activity; import android.app.Activity;
import android.graphics.Canvas; import android.graphics.Canvas;
public interface GameStateInterface public abstract class GameStateInterface
{ {
// GameState Parameters // GameState Parameters
final int GS_STOPPED = 0; final static int GS_STOPPED = 0;
final int GS_LOADING = 1; final static int GS_LOADING = 1;
final int GS_PLAYING = 2; final static int GS_PLAYING = 2;
final int GS_GAMEOVER = 3; final static int GS_GAMEOVER = 3;
final int GS_PAUSED = 4; final static int GS_PAUSED = 4;
final int GS_START = 5; final static int GS_START = 5;
final int GS_LOAD = 6; final static int GS_LOAD = 6;
final int GS_READY = 7; final static int GS_READY = 7;
// Methods. // Methods.
public void DrawFrame(Canvas canvas); public abstract void DrawFrame(Canvas canvas);
public void SendMove(float x,float y, boolean pointerUp); public abstract void SendMove(float x,float y, boolean pointerUp);
public void SetGameState(int gameState); public abstract void SetGameState(int gameState);
public void onPause(); public abstract void onPause();
// SetParameters. // SetParameters.
public void SetActivity(Activity activity); public abstract void SetActivity(Activity activity);
public void SetCanvas(CanvasView _CanvasView); public abstract void SetCanvas(CanvasView _CanvasView);
public void SetStartLevel(int startLevel); public abstract void SetPayedVersion(boolean payedVersion);
public void SetPayedVersion(boolean payedVersion);
// Get // Get
public int GetGameState(); public abstract int GetGameState();
} }