diff options
Diffstat (limited to 'app/src/main/java/space/jakob/mines/GameActivity.kt')
| -rw-r--r-- | app/src/main/java/space/jakob/mines/GameActivity.kt | 28 |
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 } } |