Пример #1
0
 // 初期化
 private void Intialize()
 {
     // field を初期化
     for (int i = 0; i < FieldData.FIELD_HEIGHT; i++)
     {
         if (i == FieldData.FIELD_HEIGHT - 1)
         {
             for (int j = 0; j < FieldData.FIELD_WIDTH; j++)
             {
                 field[i, j] = (int)Rotation.eFieldValue.WallBlock;
             }
         }
         else
         {
             for (int j = 0; j < FieldData.FIELD_WIDTH; j++)
             {
                 if (j == 0 || j == FieldData.FIELD_WIDTH - 1)
                 {
                     field[i, j] = (int)Rotation.eFieldValue.WallBlock;
                 }
                 else
                 {
                     field[i, j] = (int)Rotation.eFieldValue.Empty;
                 }
             }
         }
     }
     score      = 0;                        // スコア
     isActive   = true;                     // 操作可能かどうか
     minoAngle  = MinoData.eMinoAngle.ang0; // ミノの向き
     _minoAngle = minoAngle;
     holdMino   = MinoData.eMinoType.MAX;   // ホールド中のミノ
     isHold     = false;                    // ホールド可能かどうか
     makeMino   = true;                     // 次のミノを生成
 }
Пример #2
0
 // 次のミノを生成する
 private void MakeMino()
 {
     if (makeMino == true)
     {
         Script_next.NextChanger(ref currentMino, ref nextMino);
         minoCreate.SetMinoData(out minoArray, currentMino);
         minoPosX = FieldData.RESPAWN_MINO_POS_X;
         minoPosY = FieldData.RESPAWN_MINO_POS_Y;
         Script_render.DeleteMino();
         Script_render.DrawMino(minoPosX, minoPosY, ref minoArray, currentMino);
         minoAngle = MinoData.eMinoAngle.ang0;
         isGround  = false;
         makeMino  = false;
     }
 }
Пример #3
0
    // 回転
    private void Rotate()
    {
        // 右回転
        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            // ミノの向きを変える
            // 左向き(3)の時は上向き(0)にする
            if (minoAngle == MinoData.eMinoAngle.ang270)
            {
                minoAngle = MinoData.eMinoAngle.ang0;
            }
            else
            {
                minoAngle++;
            }
            rotation.RotatedMino(field, ref minoArray, currentMino, minoAngle, ref minoPosX, ref minoPosY, true);
            Script_render.DeleteMino();
            Script_render.DrawMino(minoPosX, minoPosY, ref minoArray, currentMino);
            // TODO : 回転が失敗だった時、 minoAngleをもとに戻す処理
        }

        // 左回転
        if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            // ミノの向きを変える
            // 上向き(0)の時は左向き(3)にする
            if (minoAngle == MinoData.eMinoAngle.ang0)
            {
                minoAngle = MinoData.eMinoAngle.ang270;
            }
            else
            {
                minoAngle--;
            }
            rotation.RotatedMino(field, ref minoArray, currentMino, minoAngle, ref minoPosX, ref minoPosY, false);
            Script_render.DeleteMino();
            Script_render.DrawMino(minoPosX, minoPosY, ref minoArray, currentMino);
            // TODO : 回転が失敗だった時、 minoAngleをもとに戻す処理
        }
    }