先日、テトリスを作ってみようと思い立ったのだな。
で、せっかくだから、どう考えて作っていったのか、その過程を残してみよう。
いつか見直す時のために。
まずは
「テトリスってどんなんだっけ?」
と、思い出しながら、大雑把に仕様を決めるところから。
-
ブロック
-
-
正方形。
-
4つ組み合わせてパターンを作る。
-
パターンによって決まる色を持つ。
-
ブロック同士は重ならない。
-
パターン
-
-
隣接した4つのブロックから成る。
-
パターンは6種類
-
-
-
-
-
-
-
-
フィールド
-
-
ブロック/パターンが存在できる領域。
-
幅が要素10個分ぐらい、高さが要素20個分ぐらいだった。
とりあえず、これでいいだろう。
-
パターンの出現と移動
-
-
フィールド上端からパターンが出現する。
-
パターンは、プレーヤーの操作で回転できる。
-
パターンは、プレーヤーの操作で左右に移動できる。
-
パターンは、プレーヤーの操作で下に移動できる。
過去にやったものでは、下移動に次の2パターンがあった。
-
操作中のみ高速移動し、操作を停止すると、元の移動速度に戻る。
-
高速移動ではなく落下として、操作によってその時点で可能な最下位置まで一気に移動する。
俺の趣味は後者なので、今回はこっちで実装することとする。
-
回転/移動によってブロックが一つでもフィールド外に出る場合は、回転/移動できない。
-
パターンは、ある時間の後に、今の位置から、ブロック一つ分、下に移動する。
-
パターンは、それ以上下に行けなくなったら、固定のブロックとなる。
-
現在のパターンが固定ブロックとなると、フィールド上端から次のパターンが出現する。
-
行消去
-
-
フィールドの行が固定ブロックで埋まると、その行を削除する。
-
削除した行の上にある固定ブロックは、その列位置を保ったまま、削除した行数分だけ下に移動する。
-
削除と、削除に伴う落下は一瞬で。
俺の記憶では、列がブロックで埋まった時、ほぁんほぁんとその列が明滅してから、上のブロックが落下していた。
俺は、この視覚効果が今一つ好きになれなかったんだよね。
スパッと消えて欲しかったのだ。
幸い、すぐに消える方が実装も楽だろうし、今回はこっちで実装することとする。
-
ゲームとして
-
-
出現するブロックはランダム。
-
勝手に落下する速度はだんだん速くなる。
-
あるところまで速くなると、もとの速さに戻る。
-
得点
-
-
同時に消去する列が多い方が得点が高い。
文章に書き出してみると意外に面倒だな。
って、今更何を言ってるんだ、俺は。
+
初雪。