资源简介
俄罗斯方块一共有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.me
文件 5012 2018-04-19 19:08 TetrisProject\Assets\Materials\wall.mat
文件 208 2018-04-19 18:44 TetrisProject\Assets\Materials\wall.mat.me
文件 192 2018-04-19 18:46 TetrisProject\Assets\Materials.me
目录 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.me
文件 192 2018-04-19 19:02 TetrisProject\Assets\Models\Materials.me
文件 39392 2013-05-01 23:18 TetrisProject\Assets\Models\cube.fbx
文件 2641 2017-07-03 21:51 TetrisProject\Assets\Models\cube.fbx.me
文件 192 2018-04-19 19:02 TetrisProject\Assets\Models.me
目录 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.me
文件 4488 2018-04-20 13:30 TetrisProject\Assets\Prefabs\Block02.prefab
文件 210 2018-04-19 20:14 TetrisProject\Assets\Prefabs\Block02.prefab.me
文件 4488 2018-04-20 13:30 TetrisProject\Assets\Prefabs\Block03.prefab
文件 210 2018-04-19 20:14 TetrisProject\Assets\Prefabs\Block03.prefab.me
文件 4480 2018-04-20 13:30 TetrisProject\Assets\Prefabs\Block04.prefab
文件 210 2018-04-19 20:14 TetrisProject\Assets\Prefabs\Block04.prefab.me
文件 4488 2018-04-20 13:30 TetrisProject\Assets\Prefabs\Block05.prefab
............此处省略1086个文件信息
相关资源
- Unity Avatar角色换装
- unity2D横版冒险跳跃游戏源码
- 树木模型--unity包
- unity的完整项目源码—坦克大战
- unity3d 吃豆人
- 基于Unity3D的2d拾宝游戏
- NGUI 3.12.1
- Easy Touch 5.0.18 unity最新版本插件
- unity官方案例飞机大战源码
- Koreographer Professional Edition1.5.0 专业版
- Koreographer-Unity的音乐插件Plus版
- 仿制紫禁城的3D模型
- TextMeshPro中文字体
- playmaker 1.9.0p2 unity2018可用
- unity 9个卡通人物模型
- 四六级词汇打字游戏Unity3D含源码
- 愤怒的小鸟Unity3d
- unity3d-火焰特效
-
Unity 中VIdeoPla
yer的视频外部加载- 源 -
Unity——VideoPla
yer完整运行 - D*Lite D Star Lite Unity2019.3.4 完整项目
- easytouch5最新版 unity5.20以上可用
- Texture Adjustments 2020.2.unitypackage
- Unity导弹追踪算法演示
- Playmaker 1.9.0 p20
- unity3D素材----UI界面包.zip
- Unity3d2D特效 多彩烟花特效包
- Lux Water 1.09.unitypackage
- T4M-unity通用版本-去除Substance材质
- vuforia-unity-6-2-10.unitypackage
评论
共有 条评论