【#8】~マス目・ゴースト実装編~新人プログラマーはテトリスを作れるのか?【C#.NET】

2021.07.12

CATEGORY : C#.NET プログラミング

こんにちは、あんみんどうふです。

今回はフィールドを見やすくするためにマス目と、ミノの置く場所をわかりやすくするためにゴーストを実装します。

前回の記事はこちら。

こんにちは、あんみんどうふです。 今回はミノを即時落下させる「ハードドロップ」、ミノを1つだけ保持できる「ホールド」の実装を行います。 前回の記事はこちら。 https://www.terasol.co.jp/%e3%83...
こんにちは、あんみんどうふです。間に挟んでちょっとしたことをします。 前回の記事はこちら。 全編見たい方はタグからどうぞ。 ...

全編見たい方はタグからどうぞ。

8-1.マス目の描画

等間隔でフィールド上に線を引くだけです。drawメソッドに追記します。

流石に真っ黒な線だと違和感しかないので、適当にグレーっぽく(#C8C8C8)してアルファ値(透明度)を80にして薄めてます。後はfor文で縦列横列分増やせば、

あっという間にできあがりです。

 

8-2.ゴースト

実はこれも結構簡単です。新メソッド「minoGhost」、作ります。

下方向に壁やミノがあるか確認し続けて、ぶつかった所のY座標を返しています。

そして更にdrawメソッドに追記します。今回二度目の追記です。

レイヤー的にマス目の線を前に出したいので、線描画の前に書きました。

minoGhostで取得した座標と現在のX座標を参照した位置にゴーストを描画しています。つまり、今操作している位置から真下にぶつかるまでの位置です。

 

ちゃんと動いてますね。床だけでなく、既に置いたミノにも対応してます。これだけでグンと遊びやすくなりました!
置きミスにはツッコまないで!

 

・・・しかし、まだゲームとして機能していません。何故なら、ゲームオーバーが無いからです。このままでは鬼○の刃無限テトリス編です(?)。

ということで、次回はゲームオーバー実装します。といっても、すぐできそうなのでゲーム始める時のカウントダウンとかも作る予定です。

#9 ゲームオーバー+α実装編に続く。

こんにちは、あんみんどうふです。 今回はゲームオーバーの実装…だけだとすぐ終わっちゃうので、ゲームが始まるときのカウントダウンも実装します。 前回の記事はこちら。 https://www.terasol.co.jp/%e3...