テトリス制作し始めてます。
とりあえず土台を作りました!
とりあえずスタートボタンを押せば、ランダムにブロックを出現させるようにはできました。
まだこのブロックは動きません。
この緑のブロックが1秒ごとに落ちていくシステムを作りたい。
各種ブロックありますが、回転させることも考慮して4×4セル(16セル)の中で全てのブロックを描写できそうですね。
悩みとしては、この回転をどう命令したらいいかです。もう回転というより、キーを押したら新たに描写を書き換えて回転させているように見せれたらいいような気がします。次回考えよう。
さて、、、
1秒ごとにブロックを1セル分下にずらしていきますが、その判定を行う範囲もその16セルで大丈夫そうですね。
そして、障害物セルのある直前のセルで落下を終える必要があります。
4×4の16セルには、空白セル、落ちていくブロックセル、固定されたブロックセル、床壁セルの4種類があって、16マスの中に1つでもそのフラグが立った場合、落下を終了させるようにプログラムすればいいですね。
落下を終えるフラグが立てられるのは指定したセルが落下しているブロックセルで、その下のセルが固定ブロックセルもしくは、床セルになっている場合になると思います。
この落下終了フラグが立つまで、1秒間待機して落下コード実行を繰り返します。
これはdo while loopで回せそうですね。
今回は落下しているブロックと固定されたブロックを色で識別しています。if文の条件を書きやすくするためです。もっといい方法見つけたらまた書きます。
落下終了した後に
16のセルの内、落下ブロックセルのみ固定ブロックの色に変更します。
ブロックの落下、移動させるための変数を0にリセットします。
ブロック変数をランダムに決めて1番上のところに出現させます。
これで1巡として、さらに新たなブロックを落下させていく流れです。はてさて、これで動くのか、、、?
楽しみです。
これはまだ作り始めで、ゲームスタートボタンのコード一部です。オセロはオセロ作りのサイトなど参考にしながら作ってますが、テトリスは仕組みから自分なりに考えて組み立てしています。ドヤァ
まだ完成してもないにこのドヤ。浮かれてます。
妻がテトリス大好きなので、できたらプレイさせてみようか、、、