2014-02-19 16:39:28 +01:00
|
|
|
package mangavalk.tetris;
|
|
|
|
|
|
2014-02-21 11:47:41 +01:00
|
|
|
import android.app.Activity;
|
2014-02-19 16:39:28 +01:00
|
|
|
import android.graphics.Canvas;
|
2014-02-20 12:13:55 +01:00
|
|
|
import android.graphics.Color;
|
2014-02-20 12:09:10 +01:00
|
|
|
import android.media.MediaPlayer;
|
2014-02-19 16:39:28 +01:00
|
|
|
|
|
|
|
|
public class GameMenu extends GameStateInterface
|
|
|
|
|
{
|
|
|
|
|
// GameState.
|
|
|
|
|
protected int GameState = GS_STOPPED;
|
|
|
|
|
|
2014-02-21 11:47:41 +01:00
|
|
|
public GameMenu(Activity activity)
|
|
|
|
|
{
|
|
|
|
|
super(activity);
|
|
|
|
|
}
|
|
|
|
|
|
2014-02-19 16:39:28 +01:00
|
|
|
// Methods.
|
|
|
|
|
@Override
|
2014-02-20 11:44:48 +01:00
|
|
|
public void DrawFrame(Canvas canvas)
|
2014-02-19 16:39:28 +01:00
|
|
|
{
|
|
|
|
|
switch(GameState)
|
|
|
|
|
{
|
2014-02-20 12:13:55 +01:00
|
|
|
case GS_MENU_READY:
|
|
|
|
|
{
|
|
|
|
|
ShowMenu(canvas);
|
|
|
|
|
break;
|
|
|
|
|
}
|
2014-02-20 11:44:48 +01:00
|
|
|
case GS_PAUSED:
|
|
|
|
|
{
|
2014-02-20 12:13:55 +01:00
|
|
|
ShowPauseMenu(canvas);
|
2014-02-20 11:44:48 +01:00
|
|
|
break;
|
|
|
|
|
}
|
2014-02-20 17:04:40 +01:00
|
|
|
case GS_GAMEOVER:
|
|
|
|
|
{
|
|
|
|
|
ShowGameOverMenu(canvas);
|
|
|
|
|
break;
|
|
|
|
|
}
|
2014-02-19 16:39:28 +01:00
|
|
|
}
|
2014-02-20 11:44:48 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void SendMove(float x, float y, boolean pointerUp)
|
|
|
|
|
{
|
|
|
|
|
switch(GameState)
|
|
|
|
|
{
|
2014-02-20 12:09:10 +01:00
|
|
|
case GS_MENU_READY:
|
|
|
|
|
{
|
|
|
|
|
if (!pointerUp)
|
|
|
|
|
{
|
|
|
|
|
SetGameState(GS_MENU_START, false);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
2014-02-20 11:44:48 +01:00
|
|
|
case GS_PAUSED:
|
|
|
|
|
{
|
|
|
|
|
if (!pointerUp)
|
|
|
|
|
{
|
|
|
|
|
SetGameState(GS_RESUME, false);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
2014-02-21 10:02:16 +01:00
|
|
|
case GS_GAMEOVER:
|
|
|
|
|
{
|
|
|
|
|
SetGameState(GS_MENU_READY, false);
|
|
|
|
|
canvasView.postInvalidate();
|
|
|
|
|
break;
|
|
|
|
|
}
|
2014-02-20 11:44:48 +01:00
|
|
|
}
|
2014-02-19 16:39:28 +01:00
|
|
|
}
|
|
|
|
|
|
2014-02-19 17:10:52 +01:00
|
|
|
@Override
|
|
|
|
|
public void SetGameState(int gameState, boolean isPostBack)
|
|
|
|
|
{
|
|
|
|
|
GameState = gameState;
|
|
|
|
|
|
|
|
|
|
switch(GameState)
|
|
|
|
|
{
|
2014-02-21 13:14:55 +01:00
|
|
|
/*case GS_LOAD:
|
2014-02-20 12:09:10 +01:00
|
|
|
{
|
|
|
|
|
Load();
|
|
|
|
|
break;
|
2014-02-21 13:14:55 +01:00
|
|
|
}*/
|
|
|
|
|
/*case GS_READY:
|
2014-02-20 12:09:10 +01:00
|
|
|
{
|
|
|
|
|
canvasView.postInvalidate();
|
|
|
|
|
break;
|
2014-02-21 13:14:55 +01:00
|
|
|
}*/
|
2014-02-20 11:44:48 +01:00
|
|
|
case GS_PAUSED:
|
|
|
|
|
{
|
|
|
|
|
canvasView.postInvalidate();
|
|
|
|
|
break;
|
|
|
|
|
}
|
2014-02-20 17:04:40 +01:00
|
|
|
case GS_GAMEOVER:
|
|
|
|
|
{
|
|
|
|
|
canvasView.postInvalidate();
|
|
|
|
|
break;
|
|
|
|
|
}
|
2014-02-19 17:10:52 +01:00
|
|
|
}
|
|
|
|
|
|
2014-02-20 11:44:48 +01:00
|
|
|
if (!isPostBack)
|
|
|
|
|
canvasView.OnGameStateChanged(GameState);
|
2014-02-19 17:10:52 +01:00
|
|
|
}
|
|
|
|
|
|
2014-02-19 16:39:28 +01:00
|
|
|
@Override
|
|
|
|
|
public void onPause() {
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2014-02-20 11:44:48 +01:00
|
|
|
// Set
|
2014-02-19 16:39:28 +01:00
|
|
|
@Override
|
2014-02-20 11:44:48 +01:00
|
|
|
public int GetGameState()
|
|
|
|
|
{
|
|
|
|
|
return GameState;
|
2014-02-19 16:39:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void SetPayedVersion(boolean payedVersion) {
|
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Internal.
|
2014-02-20 12:09:10 +01:00
|
|
|
|
|
|
|
|
// Audio.
|
|
|
|
|
MediaPlayer mp;
|
|
|
|
|
|
2014-02-21 13:14:55 +01:00
|
|
|
// TODO game state
|
|
|
|
|
@Override
|
|
|
|
|
public void Load()
|
2014-02-20 12:09:10 +01:00
|
|
|
{
|
|
|
|
|
// Load Bitmap's.
|
|
|
|
|
//LoadSprites();
|
|
|
|
|
|
|
|
|
|
//LoadFont();
|
|
|
|
|
|
|
|
|
|
// Initlialize.
|
|
|
|
|
|
|
|
|
|
// Audio
|
|
|
|
|
mp = MediaPlayer.create(activity, R.raw.tetris_a);
|
2014-02-21 13:14:55 +01:00
|
|
|
}
|
2014-02-20 12:09:10 +01:00
|
|
|
|
2014-02-21 13:14:55 +01:00
|
|
|
@Override
|
|
|
|
|
public void Start()
|
|
|
|
|
{
|
|
|
|
|
GameState = GS_MENU_READY;
|
|
|
|
|
canvasView.postInvalidate();
|
2014-02-20 12:09:10 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Draw functions.
|
2014-02-20 12:13:55 +01:00
|
|
|
private void ShowMenu(Canvas canvas)
|
2014-02-20 11:44:48 +01:00
|
|
|
{
|
2014-02-20 12:13:55 +01:00
|
|
|
Rect(canvas, 0f, 160f, 0f, 90f, Color.BLUE);
|
|
|
|
|
}
|
2014-02-20 11:44:48 +01:00
|
|
|
|
2014-02-20 12:13:55 +01:00
|
|
|
private void ShowPauseMenu(Canvas canvas)
|
|
|
|
|
{
|
|
|
|
|
Rect(canvas, 0f, 160f, 0f, 90f, Color.RED);
|
2014-02-20 11:44:48 +01:00
|
|
|
}
|
2014-02-20 12:09:10 +01:00
|
|
|
|
2014-02-20 17:04:40 +01:00
|
|
|
private void ShowGameOverMenu(Canvas canvas)
|
|
|
|
|
{
|
|
|
|
|
Rect(canvas, 0f, 160f, 0f, 90f, Color.parseColor("lime"));
|
|
|
|
|
}
|
2014-02-19 16:39:28 +01:00
|
|
|
}
|