学習を目的としてKotlinでテトリスのようなものを作る ②


前回はプロジェクトの作成からブロックの表示まで実装しました。


今回は機能の実装に取り掛かりたいと思います。

実装する機能はブロックの落下と移動です。


ブロックを落下させる


ブロックを落下させるためにブロックに位置情報を持たせます。
基点の四角形の左上の座標を ブロックの位置情報とします。
Blockクラスに以下のメンバ変数を追加します。


あとはどんなふうに落下させるかですね。
カウントをインクリメントしていき一定の値に達したらブロックを動かすこと(y座標の値を更新)にします。
そのときにカウントをリセットします。
Graphicクラスに以下のメンバ変数を追加します。


Const.ktに以下のパラメーターを追加します。


ブロックのy座標の値を更新する処理です。
この処理をGraphicクラスに追加します。


Blockクラスに以下の関数を追加します。


実行するとこうなります。
それにしてもフィールド小さいな。

ブロックの移動


次はブロックの移動です。
画面をタップすることでブロックを移動できるようにします。
タップした場所によって移動する方向を決定します。
MainActivityを以下のように修正します。


実行したらこうなりました。


ブロックの落下と移動を実装できました。
ただこの状態だと移動が無制限のため、この動作をフィールド内に制限する必要があります。
ブロックの位置を計算してフィールドの範囲外かどうかをチェックします。
この機能を次回実装したいと思います。