summaryrefslogtreecommitdiff
path: root/app/src/main/java/space/jakob/mines/GameActivity.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/space/jakob/mines/GameActivity.kt')
-rw-r--r--app/src/main/java/space/jakob/mines/GameActivity.kt27
1 files changed, 22 insertions, 5 deletions
diff --git a/app/src/main/java/space/jakob/mines/GameActivity.kt b/app/src/main/java/space/jakob/mines/GameActivity.kt
index 929c020..927955e 100644
--- a/app/src/main/java/space/jakob/mines/GameActivity.kt
+++ b/app/src/main/java/space/jakob/mines/GameActivity.kt
@@ -13,26 +13,43 @@
package space.jakob.mines
import android.support.v7.app.AppCompatActivity
+import android.support.v4.view.GestureDetectorCompat
import android.os.Bundle
+import android.view.GestureDetector
import android.view.MotionEvent
import android.util.Log
class GameActivity : AppCompatActivity() {
lateinit var gameView: GameView
+ lateinit var gestureDetector: GestureDetectorCompat
- override fun onTouchEvent(event: MotionEvent): Boolean {
- val (x, y) = gameView.toGridCoordinates(event.x.toInt(), event.y.toInt())
- gameView.grid?.let {
- it.reveal(x, y)
+ // Implements the callbacks for gestureDetector.
+ val gestureListener = object : GestureDetector.SimpleOnGestureListener() {
+ override fun onScroll(e1: MotionEvent, e2: MotionEvent, dx: Float, dy: Float): Boolean {
+ with (gameView) {
+ cameraX = (cameraX + dx / 100.0).coerceIn(0.0, gameView.maxCameraX)
+ cameraY = (cameraY + dy / 100.0).coerceIn(0.0, gameView.maxCameraY)
+ }
gameView.invalidate()
+ return false
+ }
+ }
+
+ override fun onTouchEvent(event: MotionEvent): Boolean {
+ return if (gestureDetector.onTouchEvent(event)) {
+ true
+ } else {
+ super.onTouchEvent(event)
}
- return true
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_game)
+
gameView = findViewById(R.id.view) as GameView
gameView.grid = Grid(8, 8, 10)
+
+ gestureDetector = GestureDetectorCompat(this, gestureListener)
}
}