diff options
| author | Jakob L. Kreuze <jakob@memeware.net> | 2019-01-12 14:32:42 -0500 |
|---|---|---|
| committer | Jakob L. Kreuze <jakob@memeware.net> | 2019-01-12 14:32:42 -0500 |
| commit | ef496487ae49a1e98ea3c9de0531ca4716f7cebf (patch) | |
| tree | 139ac23a0c82f3b935dfc3f0aeee7d56cd3630bb /app/src/main/java/space/jakob/mines/GameActivity.kt | |
| parent | cc84e4eaec11580fcaf0b70a7782566917ed286e (diff) | |
Extract Grid to be primarily a member of GameActivity
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 } } |