diff --git a/src/mangavalk/tetris/CanvasView.java b/src/mangavalk/tetris/CanvasView.java index 3c77227..9b6b1b4 100644 --- a/src/mangavalk/tetris/CanvasView.java +++ b/src/mangavalk/tetris/CanvasView.java @@ -27,16 +27,13 @@ public class CanvasView extends View super(context); super.setBackgroundColor(Color.BLACK); - - Gameplay = new GamePlay(); - //Gameplay.Instance = Gameplay; - - Gamemenu = new GameMenu(); - //Gamemenu.Instance = Gamemenu; } public void SetActivity(Activity activity) { + Gameplay = new GamePlay(activity); + Gamemenu = new GameMenu(activity); + Gamemenu.SetActivity(activity); Gamemenu.SetCanvas(this); Gamemenu.SetPayedVersion(PayedVersion); diff --git a/src/mangavalk/tetris/GameMenu.java b/src/mangavalk/tetris/GameMenu.java index 00ddc76..3c8ecb7 100644 --- a/src/mangavalk/tetris/GameMenu.java +++ b/src/mangavalk/tetris/GameMenu.java @@ -1,23 +1,20 @@ package mangavalk.tetris; -import android.content.res.Resources; +import android.app.Activity; import android.graphics.Canvas; import android.graphics.Color; -import android.graphics.Paint; -import android.graphics.Paint.Style; import android.media.MediaPlayer; -import android.util.DisplayMetrics; -import android.util.TypedValue; -import android.view.Display; public class GameMenu extends GameStateInterface { - // Instance. - public static GameMenu Instance = new GameMenu(); - // GameState. protected int GameState = GS_STOPPED; + public GameMenu(Activity activity) + { + super(activity); + } + // Methods. @Override public void DrawFrame(Canvas canvas) @@ -126,16 +123,6 @@ public class GameMenu extends GameStateInterface // Internal. - // Variabelen. - Resources r; - - // Display - float dpHeight; - float dpWidth; - - float Height; - float Width; - // Audio. MediaPlayer mp; @@ -144,20 +131,7 @@ public class GameMenu extends GameStateInterface { SetGameState(GS_LOADING, false); - // Set Display Info. - Display display = activity.getWindowManager().getDefaultDisplay(); - DisplayMetrics outMetrics = new DisplayMetrics (); - display.getMetrics(outMetrics); - - r = activity.getResources(); - - float density = r.getDisplayMetrics().density; - - dpHeight = outMetrics.heightPixels / density; - dpWidth = outMetrics.widthPixels / density; - - Height = outMetrics.heightPixels; - Width = outMetrics.widthPixels; + ////////////////////////////////////////// // Load Bitmap's. //LoadSprites(); @@ -187,38 +161,4 @@ public class GameMenu extends GameStateInterface { Rect(canvas, 0f, 160f, 0f, 90f, Color.parseColor("lime")); } - - // other logic - private void Rect(Canvas canvas, float Top, float Bottom, float Left, float Right, int Color) - { - Paint paint = new Paint(); - paint.setAntiAlias(true); - paint.setColor(Color); - paint.setStyle(Style.FILL); - - canvas.drawRect( - GetRealPixelSize(DIP_W, dpWidth, Left), - GetRealPixelSize(DIP_H, dpHeight, Top), - GetRealPixelSize(DIP_W, dpWidth, Right), - GetRealPixelSize(DIP_H, dpHeight, Bottom), paint); - } - - final static int DIP_H = 0; - final static int DIP_W = 1; - - private float GetRealPixelSize(int wH, float dpWH, double DIP) - { - if (wH == DIP_H) - return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (float)(dpWH * ( DIP / 160 )), r.getDisplayMetrics()); - else if (wH == DIP_W) - return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (float)(dpWH * ( DIP / 90 )), r.getDisplayMetrics()); - else - return 0; - } - - float map(float x, float in_min, float in_max, float out_min, float out_max) - { - return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; - } - } diff --git a/src/mangavalk/tetris/GamePlay.java b/src/mangavalk/tetris/GamePlay.java index 59168a4..c6d6ac4 100644 --- a/src/mangavalk/tetris/GamePlay.java +++ b/src/mangavalk/tetris/GamePlay.java @@ -1,18 +1,12 @@ package mangavalk.tetris; import android.app.Activity; -import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; -import android.graphics.Paint; -import android.graphics.Paint.Style; import android.media.MediaPlayer; import android.os.Handler; -import android.util.DisplayMetrics; -import android.util.TypedValue; -import android.view.Display; import java.util.ArrayList; import java.util.TimerTask; @@ -22,6 +16,11 @@ public class GamePlay extends GameStateInterface // GameState. protected int GameState = GS_STOPPED; + public GamePlay(Activity activity) + { + super(activity); + } + // Methods. @Override public void DrawFrame(Canvas canvas) { @@ -129,14 +128,6 @@ public class GamePlay extends GameStateInterface } // Variabelen - Resources r; - - // Display - float dpHeight; - float dpWidth; - - float Height; - float Width; // Block Array int[][] blockArray = new int[][]{ @@ -470,20 +461,7 @@ public class GamePlay extends GameStateInterface { SetGameState(GS_LOADING, false); - // Set Display Info. - Display display = activity.getWindowManager().getDefaultDisplay(); - DisplayMetrics outMetrics = new DisplayMetrics (); - display.getMetrics(outMetrics); - - r = activity.getResources(); - - float density = r.getDisplayMetrics().density; - - dpHeight = outMetrics.heightPixels / density; - dpWidth = outMetrics.widthPixels / density; - - Height = outMetrics.heightPixels; - Width = outMetrics.widthPixels; + //////////////////////////// // Load Bitmap's. LoadSprites(); @@ -1876,7 +1854,6 @@ public class GamePlay extends GameStateInterface } } - private boolean SpawnBlock() { CheckTetriminoSpawnArray(); @@ -1909,38 +1886,4 @@ public class GamePlay extends GameStateInterface return true; } - - // other logic - private void Rect(Canvas canvas, float Top, float Bottom, float Left, float Right, int Color) - { - Paint paint = new Paint(); - paint.setAntiAlias(true); - paint.setColor(Color); - paint.setStyle(Style.FILL); - - canvas.drawRect( - GetRealPixelSize(DIP_W, dpWidth, Left), - GetRealPixelSize(DIP_H, dpHeight, Top), - GetRealPixelSize(DIP_W, dpWidth, Right), - GetRealPixelSize(DIP_H, dpHeight, Bottom), paint); - } - - final static int DIP_H = 0; - final static int DIP_W = 1; - - private float GetRealPixelSize(int wH, float dpWH, double DIP) - { - if (wH == DIP_H) - return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (float)(dpWH * ( DIP / 160 )), r.getDisplayMetrics()); - else if (wH == DIP_W) - return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (float)(dpWH * ( DIP / 90 )), r.getDisplayMetrics()); - else - return 0; - } - - float map(float x, float in_min, float in_max, float out_min, float out_max) - { - return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; - } - } diff --git a/src/mangavalk/tetris/GameStateInterface.java b/src/mangavalk/tetris/GameStateInterface.java index c564762..bd4cba8 100644 --- a/src/mangavalk/tetris/GameStateInterface.java +++ b/src/mangavalk/tetris/GameStateInterface.java @@ -1,12 +1,16 @@ package mangavalk.tetris; import android.app.Activity; +import android.content.res.Resources; import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Paint.Style; +import android.util.DisplayMetrics; +import android.util.TypedValue; +import android.view.Display; public abstract class GameStateInterface { - //public GameStateInterface Instance; - // GameState Parameters final static int GS_STOPPED = 0; final static int GS_LOADING = 1; @@ -21,16 +25,40 @@ public abstract class GameStateInterface final static int GS_MENU_READY = 10; // Variabelen. - CanvasView canvasView; - Activity activity = null; + protected CanvasView canvasView; + protected Activity activity = null; + + // Constructer. + protected GameStateInterface() + { + // Do nothing. + } + + public GameStateInterface(Activity _activity) + { + activity = _activity; + + // Set Display Info. + Display display = activity.getWindowManager().getDefaultDisplay(); + DisplayMetrics outMetrics = new DisplayMetrics (); + display.getMetrics(outMetrics); + + r = activity.getResources(); + + float density = r.getDisplayMetrics().density; + + dpHeight = outMetrics.heightPixels / density; + dpWidth = outMetrics.widthPixels / density; + + Height = outMetrics.heightPixels; + Width = outMetrics.widthPixels; + } // 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, boolean isPostBack); public abstract void onPause(); @@ -50,4 +78,49 @@ public abstract class GameStateInterface // Get public abstract int GetGameState(); + + // other logic + + // Variabelen. + Resources r; + + // Display + float dpHeight; + float dpWidth; + + float Height; + float Width; + + protected void Rect(Canvas canvas, float Top, float Bottom, float Left, float Right, int Color) + { + Paint paint = new Paint(); + paint.setAntiAlias(true); + paint.setColor(Color); + paint.setStyle(Style.FILL); + + canvas.drawRect( + GetRealPixelSize(DIP_W, dpWidth, Left), + GetRealPixelSize(DIP_H, dpHeight, Top), + GetRealPixelSize(DIP_W, dpWidth, Right), + GetRealPixelSize(DIP_H, dpHeight, Bottom), paint); + } + + final static int DIP_H = 0; + final static int DIP_W = 1; + + protected float GetRealPixelSize(int wH, float dpWH, double DIP) + { + if (wH == DIP_H) + return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (float)(dpWH * ( DIP / 160 )), r.getDisplayMetrics()); + else if (wH == DIP_W) + return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (float)(dpWH * ( DIP / 90 )), r.getDisplayMetrics()); + else + return 0; + } + + protected float map(float x, float in_min, float in_max, float out_min, float out_max) + { + return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; + } + }