はかせのラボ

私の頭の中を書いていく雑記ブログです

落ちモノパズル 今日の進捗

あいさつ

どうも、はかせです。
今回は進捗報告会です。

今日やったこと

いっぱいやってますが
前回結構まじめに悩んで作った移動のおかげでそんな詰まることなく
実装できました。

自由落下

一定フレーム経過するごとに
ピースを1段下に移動させています。

1段下に移動させる処理は
まず今現在のピースを非表示にして座標を移動。
その後移動した座標のピースを表示することで
1段下に移動したように見せています。

高速落下

自由落下をする一定フレーム数を
短くすることで高速落下に見せています。

ハードドロップ

一番下まで一気にピースを落とすことです。
壁にぶつかるか他のピースと重複がおこるまで
1段下に移動を繰り返しています。

ホールド

今操作しているテトリミノを保持して次のテトリミノを出すことです。
保持したテトリミノはプレイヤーの任意のタイミングで入れ替えることが出来ます。

テトリミノは形と色が対応しています。
また入れ替えたときは画面上部から出てきます。

なので保持したテトリミノの形情報を保存するだけで実装できました。

消した段分落下

テトリスは1列揃うと揃った列が消えます。
この時何列目が消えたかを記憶しておき、
消去処理が全て終わった後で消えた列より上の列を
それぞれ落としています。
例えばこんな風になったとして
(W = 壁 F = 盤面に固定されたピース)
f:id:hakase0274:20190211234417p:plain
結果はこうなります。
f:id:hakase0274:20190211235640p:plain

あとがき

今回は今日の進捗報告でした。
私にしては珍しくアホミスもようわからんエラーにも遭遇しませんでした(*´ω`*)
(これが本当に何もないだといいんですけどね)

それでは今回はこの辺でノシ

今回作ったものはgithubに上げました
github.com