日々是好日~every day is a good day~

日常の中の非日常の備忘録

【Android Studio】ブロックくずし 4回目

今日は『画面をタッチしてバーを動かす』です

import android.content.Context
import android.os.Bundle
import android.util.DisplayMetrics
import android.view.MotionEvent
import android.view.View
import android.view.WindowManager
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity

var SCREEN_HEIGHT = 0   //画面の高さ
var SCREEN_WIDTH = 0   //画面の幅
val tate: Int = 8   //ブロックの縦の数
val yoko: Int = 5   //ブロックの横の数
var flag_Block = Array(tate) { BooleanArray(yoko) { true } }   //ブロックの表示/非表示のフラグ

open class MainActivity : AppCompatActivity() {

    private var barx = 0F   //バーのx座標
    private var flag_Start = false   //スタートフラグ

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        //スクリーンサイズの取得
        val vm: WindowManager = this.getSystemService(Context.WINDOW_SERVICE) as WindowManager
        val display = vm.defaultDisplay
        val metric = DisplayMetrics()
        display.getMetrics(metric)
        SCREEN_WIDTH = metric.widthPixels
        SCREEN_HEIGHT = metric.heightPixels
        //ブロックをすべて表示
        flag_Block = Array(tate) { BooleanArray(yoko) { true } }
    }

    override fun onTouchEvent(event: MotionEvent?): Boolean {
        val startLabel:TextView = findViewById(R.id.startLabel)
        val bar:ImageView = findViewById(R.id.bar)

        if(flag_Start == false){
            flag_Start = true
            barx = bar.x
            startLabel.setVisibility(View.GONE)
        }else{   //バーを動かす
            if(event?.getAction() == MotionEvent.ACTION_MOVE) {
                barx = event.x
            }
            else{
                barx = barx
            }
            bar.setX(barx)
        }
        return true
    }
}


(再生できなくなっていたので2024.2.5に修正しました)
タップしてスタート
バーが動くようになりました