Unityではじめてのテトリス風落ちゲー制作記 ~その4 落下ブロック操作編~

Unity

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;
        }
    }
}

キー操作したときの動作を確認

まとめ

今回は落下ブロック移動編として、プレイヤーがキー操作をしたときに、落下ブロックを左右に移動、回転、落下スピードを速めるプログラムを作成するところまで解説しました。

キー操作で落下ブロックを動かすことが出来たことにより、ゲームっぽくなってきました。

しかし、落下ブロックは壁ブロックをすり抜けてしまっています。

次回は、落下ブロックの当たり判定を作成していきたいと思います。

最後までお読み頂きありがとうございました。