Unityでテトリス風落ちゲーを作ってみたいけど、何から手を付けていいか分からない。私もそんな一人です。ここでは、自分の勉強も含めて、簡単なテトリス風落ちゲーを制作していく過程を掲載していきます。
この連載を最後まで読めば、このようなテトリス風落ちゲーが1人で作れるようになります。
別ウィンドウで開く場合はこちら
今回は落下ブロック移動編として、プレイヤーがキー操作をしたときに、落下ブロックを左右に移動、回転、落下スピードを速めるプログラムを作成するところまで解説していきます。
まだ落下ブロック表示編を読んでない方は、こちらを先に読むことをお勧めします。
この記事はこんな人におすすめ!
- 用意されたアセットを極力使わず、自分の力でゲームを作りたい
- プログラミング初心者で1つ1つ丁寧に解説した記事が読みたい
- Unity初心者がスキルを上げながらゲームを制作していく過程を見たい
ゲーム制作方法は自己流です。もっと簡単に作る方法もあると思いますので、ご了承下さい。
落下ブロックの左右移動
プレイヤーが左右キーを押したときに、落下ブロックを左右に移動出来るようプログラムを作成します。このプログラムはUpdateメソッド内に記述することで、常にキー操作を受け付けれるようになります。
void Update()
{
if(Input.GetButtonDown("Horizontal") == true)
{
// 右キー or Dキーを押したとき落下ブロックを1マス右に移動
if(Input.GetAxis("Horizontal") > 0.01f)
{
fallBlockPosX++;
}
// 左キー or Aキーを押したとき落下ブロックを1マス左に移動
if(Input.GetAxis("Horizontal") < -0.01f)
{
fallBlockPosX--;
}
}
}
落下ブロックの回転
落下ブロックを回転させるプログラムは以下になります。
void Update()
{
// スペースキーを押したとき右90°回転
if(Input.GetButtonDown("Jump") == true){
rot++;
if(rot == 4) rot = 0;
fallBlockStat = fallBlockSet.set(blockNum, rot);
}
}
落下ブロックの落下スピードを速める
落下ブロックのスピードを速めるプログラムは以下になります。
void Update()
{
// 下キー or Sキーを押したとき落下ブロックを1マス下に移動
if(Input.GetButtonDown("Vertical") == true){
if(Input.GetAxis("Vertical") < -0.01f)
{
fallBlockPosY++;
fallCountTime = 0;
}
}
}
キー操作したときの動作を確認
まとめ
今回は落下ブロック移動編として、プレイヤーがキー操作をしたときに、落下ブロックを左右に移動、回転、落下スピードを速めるプログラムを作成するところまで解説しました。
キー操作で落下ブロックを動かすことが出来たことにより、ゲームっぽくなってきました。
しかし、落下ブロックは壁ブロックをすり抜けてしまっています。
次回は、落下ブロックの当たり判定を作成していきたいと思います。
最後までお読み頂きありがとうございました。