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.kt28
1 files changed, 15 insertions, 13 deletions
diff --git a/app/src/main/java/space/jakob/mines/GameActivity.kt b/app/src/main/java/space/jakob/mines/GameActivity.kt
index 5a44720..2ef2b70 100644
--- a/app/src/main/java/space/jakob/mines/GameActivity.kt
+++ b/app/src/main/java/space/jakob/mines/GameActivity.kt
@@ -21,20 +21,28 @@ import android.view.MotionEvent
import android.util.Log
class GameActivity : AppCompatActivity() {
+ lateinit var grid : Grid
lateinit var gameView: GameView
lateinit var gestureDetector: GestureDetectorCompat
lateinit var scaleGestureDetector: ScaleGestureDetector
// Implements the callbacks for gestureDetector.
val gestureListener = object : GestureDetector.SimpleOnGestureListener() {
+ // Reveal a tile if it's tapped.
override fun onSingleTapUp(e: MotionEvent): Boolean {
- with (gameView) {
- revealAt(e.x.toInt(), e.y.toInt())
- invalidate()
- }
+ val (x, y) = gameView.toGridCoordinates(e.x.toInt(), e.y.toInt())
+ grid.reveal(x, y)
+ gameView.invalidate()
return false
}
+ // Flag a tile if it's pressed and held.
+ override fun onLongPress(e: MotionEvent) {
+ val (x, y) = gameView.toGridCoordinates(e.x.toInt(), e.y.toInt())
+ grid.flag(x, y)
+ gameView.invalidate()
+ }
+
override fun onScroll(e1: MotionEvent, e2: MotionEvent, dx: Float, dy: Float): Boolean {
with (gameView) {
moveCamera(dx.toDouble(), dy.toDouble())
@@ -42,13 +50,6 @@ class GameActivity : AppCompatActivity() {
}
return false
}
-
- override fun onLongPress(e: MotionEvent) {
- with (gameView) {
- flagAt(e.x.toInt(), e.y.toInt())
- invalidate()
- }
- }
}
// Implements the callbacks for scaleGestureDetector.
@@ -83,10 +84,11 @@ class GameActivity : AppCompatActivity() {
mines = it.getIntExtra("MINES", mines)
}
+ grid = Grid(width, height, mines)
gameView = findViewById(R.id.view) as GameView
- gameView.grid = Grid(width, height, mines)
-
gestureDetector = GestureDetectorCompat(this, gestureListener)
scaleGestureDetector = ScaleGestureDetector(this, scaleListener)
+
+ gameView.grid = grid
}
}