• 大小: 11.8MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-19
  • 语言: 其他
  • 标签: unity  

资源简介

俄罗斯方块一共有7种不同的方块。每个种类有4个小方块组成的。我们使用一个string[ ]数组来记录方块的形状。

资源截图

代码片段和文件信息

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Block : MonoBehaviour {

    public string[] block;  //记录每个小方块的矩阵位置
    private bool[] blockMatrix;  //记录矩阵中的小方块的位置,有方块的为true,无方块的为false
    private int size;           //矩阵的维数

    private int xPosition;   //记录方块的矩阵中x坐标位置
    private int yPosition;   //记录方块的矩阵中y坐标位置

    private float fullSpeed;   //方块掉落的速度
    private float childSize;

    // Use this for initialization
    void Start () {
        size = block.Length;
        blockMatrix = new bool[size size];

        childSize = (size - 1) * 0.5f;

        //生成这个方块(由多个小方块组成)
        for (int y = 0; y < size; y++)
        {
            for (int x = 0; x < size; x++)
            {
                if(block[y][x] == ‘1‘)
                {
                    blockMatrix[y x] = true;   //将方块在矩阵中的位置设为true
                    Gameobject blockCube = Instantiate(Manager.Instance.blockCube new Vector3(x - childSize childSize - y 0) Quaternion.identity);
                    blockCube.transform.parent = transform;
                }
            }
        }
        yPosition = Manager.Instance.GetFieldHeight() - 1;
        transform.position = new Vector3(size % 2 == 0 ? -0.5f : 0 yPosition - childSize 0);
        xPosition = (int)(Manager.Instance.GetFieldWidth()/2 - childSize);

        fullSpeed = Manager.Instance.blockNormalFallSpeed;   //获取方块掉落的速度

        //判断是否GameOver
        if (Manager.Instance.CheckBlock(blockMatrix xPosition yPosition))
        {
            Manager.Instance.GameOver();
            return;
        }

        StartCoroutine(CheckInput());
        StartCoroutine(Fall());
    }

    IEnumerator Fall()
    {
        while (true)
        {
            yPosition--;
            //如果碰撞到其它小方块,销毁该校方块,在游戏矩阵内设置小方块
            if (Manager.Instance.CheckBlock(blockMatrix xPosition yPosition))
            {
                Manager.Instance.SetBlock(blockMatrix xPosition yPosition + 1);
                Destroy(gameobject);
                break;
            }

            //向下落
            for(float i=yPosition+1;i>yPosition;i-=Time.deltaTime* fullSpeed)
            {
                transform.position = new Vector3(transform.position.x i - childSize transform.position.z);
                yield return null;
            }
        }
    }

    IEnumerator CheckInput()
    {
        while (true)
        {
            float h = Input.GetAxisRaw(“Horizontal“);
            if (h != 0)  //Left
            {
                yield return StartCoroutine(MoveBlock(h));
            }

            if (Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.W))
            {
                RotateBlock();
            }

            if (Input.GetKeyDown(KeyCode.DownArrow) || Input.GetKeyDown(KeyCode.S))
            {
                fullSpeed = Manager.Instance.blockDropSpeed;
            }
           

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件    18148864  2017-05-08 20:33  eluosifangkuai.exe
     目录           0  2018-05-01 18:18  TetrisProject\
     目录           0  2018-05-01 18:18  TetrisProject\.vs\
     目录           0  2018-05-01 18:18  TetrisProject\.vs\TetrisProject\
     目录           0  2018-05-01 18:18  TetrisProject\.vs\TetrisProject\v15\
     文件       49664  2018-04-20 21:13  TetrisProject\.vs\TetrisProject\v15\.suo
     目录           0  2018-05-01 18:18  TetrisProject\Assets\
     目录           0  2018-05-01 18:18  TetrisProject\Assets\Materials\
     文件        5176  2018-04-19 18:50  TetrisProject\Assets\Materials\cubeTexture.mat
     文件         208  2018-04-19 18:46  TetrisProject\Assets\Materials\cubeTexture.mat.meta
     文件        5012  2018-04-19 19:08  TetrisProject\Assets\Materials\wall.mat
     文件         208  2018-04-19 18:44  TetrisProject\Assets\Materials\wall.mat.meta
     文件         192  2018-04-19 18:46  TetrisProject\Assets\Materials.meta
     目录           0  2018-05-01 18:18  TetrisProject\Assets\Models\
     目录           0  2018-05-01 18:18  TetrisProject\Assets\Models\Materials\
     文件        4212  2013-05-01 23:18  TetrisProject\Assets\Models\Materials\blinn4.mat
     文件          95  2017-07-03 21:51  TetrisProject\Assets\Models\Materials\blinn4.mat.meta
     文件         192  2018-04-19 19:02  TetrisProject\Assets\Models\Materials.meta
     文件       39392  2013-05-01 23:18  TetrisProject\Assets\Models\cube.fbx
     文件        2641  2017-07-03 21:51  TetrisProject\Assets\Models\cube.fbx.meta
     文件         192  2018-04-19 19:02  TetrisProject\Assets\Models.meta
     目录           0  2018-05-01 18:18  TetrisProject\Assets\Prefabs\
     文件        4496  2018-04-20 13:30  TetrisProject\Assets\Prefabs\Block01.prefab
     文件         210  2018-04-19 20:14  TetrisProject\Assets\Prefabs\Block01.prefab.meta
     文件        4488  2018-04-20 13:30  TetrisProject\Assets\Prefabs\Block02.prefab
     文件         210  2018-04-19 20:14  TetrisProject\Assets\Prefabs\Block02.prefab.meta
     文件        4488  2018-04-20 13:30  TetrisProject\Assets\Prefabs\Block03.prefab
     文件         210  2018-04-19 20:14  TetrisProject\Assets\Prefabs\Block03.prefab.meta
     文件        4480  2018-04-20 13:30  TetrisProject\Assets\Prefabs\Block04.prefab
     文件         210  2018-04-19 20:14  TetrisProject\Assets\Prefabs\Block04.prefab.meta
     文件        4488  2018-04-20 13:30  TetrisProject\Assets\Prefabs\Block05.prefab
............此处省略1086个文件信息

评论

共有 条评论