// Mines is free software: you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the Free Software // Foundation, either version 3 of the License, or (at your option) any later // version. // Mines is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR // A PARTICULAR PURPOSE. See the GNU General Public License for more details. // You should have received a copy of the GNU General Public License along with // Mines. If not, see . 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 // 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) } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_game) var width = 8 var height = 8 var mines = 10 getIntent()?.let { width = it.getIntExtra("WIDTH", width) height = it.getIntExtra("HEIGHT", height) mines = it.getIntExtra("MINES", mines) } gameView = findViewById(R.id.view) as GameView gameView.grid = Grid(width, height, mines) gestureDetector = GestureDetectorCompat(this, gestureListener) } }