diff options
| author | Jakob L. Kreuze <jakob@memeware.net> | 2018-12-17 09:29:44 -0500 |
|---|---|---|
| committer | Jakob L. Kreuze <jakob@memeware.net> | 2018-12-17 09:29:44 -0500 |
| commit | 1321cdd4ef707c6375cbb6ea6d49f3839a2a4a53 (patch) | |
| tree | 446452694a9c6a448e37ea79e38535f644b4580c /app/src/main/java/space/jakob/mines/GameActivity.kt | |
| parent | c9f1455e82b25f05c3c4c4d6e426abd639a95c83 (diff) | |
Initial implementation of movement with scrolling
Diffstat (limited to 'app/src/main/java/space/jakob/mines/GameActivity.kt')
| -rw-r--r-- | app/src/main/java/space/jakob/mines/GameActivity.kt | 27 |
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) } } |