diff --git a/libs/gesture-v2.0.0.jar b/libs/gesture-v2.0.0.jar new file mode 100644 index 0000000..552f72d Binary files /dev/null and b/libs/gesture-v2.0.0.jar differ diff --git a/libs/sdk-v1.0.0.jar b/libs/sdk-v1.0.0.jar new file mode 100644 index 0000000..070d65d Binary files /dev/null and b/libs/sdk-v1.0.0.jar differ diff --git a/src/mangavalk/tetris/CanvasView.java b/src/mangavalk/tetris/CanvasView.java index ad5c0fc..a7d7a92 100644 --- a/src/mangavalk/tetris/CanvasView.java +++ b/src/mangavalk/tetris/CanvasView.java @@ -99,4 +99,9 @@ public class CanvasView extends View // Dev2 } } } + + public void sendMove(int angle, int speed) + { + Foreground.SendMove(angle, speed); + } } diff --git a/src/mangavalk/tetris/GameMenu.java b/src/mangavalk/tetris/GameMenu.java index 88b87e1..68ea501 100644 --- a/src/mangavalk/tetris/GameMenu.java +++ b/src/mangavalk/tetris/GameMenu.java @@ -163,4 +163,10 @@ public class GameMenu extends GameStateInterface { Rect(canvas, 0f, 160f, 0f, 90f, Color.parseColor("lime")); } + + @Override + public void SendMove(int angle, int speed) { + // TODO Auto-generated method stub + + } } diff --git a/src/mangavalk/tetris/GamePlay.java b/src/mangavalk/tetris/GamePlay.java index 69f9e27..3108ccd 100644 --- a/src/mangavalk/tetris/GamePlay.java +++ b/src/mangavalk/tetris/GamePlay.java @@ -82,7 +82,7 @@ public class GamePlay extends GameStateInterface } } - if (!isPostBack) + if ((!isPostBack) && (GameState != GS_GAMEOVER)) canvasView.OnGameStateChanged(GameState); } @@ -444,7 +444,6 @@ public class GamePlay extends GameStateInterface handler.postDelayed(runnable, 100); } - // TODO game state @Override public void Load() { @@ -1875,4 +1874,39 @@ public class GamePlay extends GameStateInterface return true; } + + @Override + public void SendMove(int angle, int speed) + { + if (angle <= 315 && angle >= 225 ) // Left + { + if(CanBlockGoLeft()) + { + MoveBlockLeft(); + canvasView.postInvalidate(); + } + } + else if (angle <= 135 && angle >= 45 ) // Right + { + if(CanBlockGoRight()) + { + MoveBlockRight(); + canvasView.postInvalidate(); + } + } + else if (angle <= 225 && angle >= 135 ) // Rotate Right + { + RotateBlockRight(); + canvasView.postInvalidate(); + } + else if ((angle <= 30 || angle >= 330 ) && (speed >= 80)) // go down + { + // Hard Drop + while (CanBlockGoDown()) + { + MoveBlockDown(); + } + canvasView.postInvalidate(); + } + } } diff --git a/src/mangavalk/tetris/GameStateInterface.java b/src/mangavalk/tetris/GameStateInterface.java index 76ae3d4..c5a0b56 100644 --- a/src/mangavalk/tetris/GameStateInterface.java +++ b/src/mangavalk/tetris/GameStateInterface.java @@ -122,4 +122,6 @@ public abstract class GameStateInterface return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } + public abstract void SendMove(int angle, int speed); + } diff --git a/src/mangavalk/tetris/MainActivity.java b/src/mangavalk/tetris/MainActivity.java index 16977f0..b5569f2 100644 --- a/src/mangavalk/tetris/MainActivity.java +++ b/src/mangavalk/tetris/MainActivity.java @@ -4,12 +4,19 @@ package mangavalk.tetris; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdSize; import com.google.android.gms.ads.AdView; +import com.samsung.android.sdk.SsdkUnsupportedException; +import com.samsung.android.sdk.gesture.Sgesture; +import com.samsung.android.sdk.gesture.SgestureHand; +import com.samsung.android.sdk.gesture.SgestureHand.Info; import android.app.Activity; import android.graphics.PointF; import android.os.Bundle; +import android.os.Looper; +import android.util.Log; import android.util.SparseArray; import android.view.MotionEvent; +import android.view.WindowManager; import android.widget.FrameLayout; public class MainActivity extends Activity @@ -17,10 +24,30 @@ public class MainActivity extends Activity CanvasView canvasClass; private AdView adView; + private Sgesture mGesture; + private SgestureHand mHand; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + // Gesture. Samsung only + mGesture = new Sgesture(); + + try { + mGesture.initialize(this); + } catch (IllegalArgumentException e) { + //Error Handling + } catch (SsdkUnsupportedException e2) { + //Error Handling + } + + if(mGesture.isFeatureEnabled(Sgesture.TYPE_HAND_PRIMITIVE)){ + mHand = new SgestureHand(Looper.getMainLooper(), mGesture); + mHand.start(Sgesture.TYPE_HAND_PRIMITIVE, mChangeListener); + } + + FrameLayout ll; ll = new FrameLayout(this); @@ -37,6 +64,8 @@ public class MainActivity extends Activity .addTestDevice("2CA96A8B6B805B3323F65A934FB31DC7") // Samsung Galaxy S5 .build(); + getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + canvasClass = new CanvasView(this); canvasClass.PayedVersion = true; // Set payment status @@ -63,16 +92,31 @@ public class MainActivity extends Activity canvasClass.SetActivity(this); } + private final SgestureHand.ChangeListener mChangeListener = + new SgestureHand.ChangeListener() { + @Override + public void onChanged(Info info) { + Log.d("gesture", "Hand : angle = " + info.getAngle()); + // do something with data + canvasClass.sendMove(info.getAngle(), info.getSpeed()); + } + }; + @Override public void onPause() { super.onPause(); canvasClass.onPause(); } + @Override + public void onStop() { + super.onStop(); + } + + @Override public void onResume() { super.onResume(); - //canvasClass.onResume(); } @Override