第十五节 生成方块 上
2019-06-24 本文已影响0人
安静的程序员
屏幕显示的问题已经解决了,现在需要一个类用来生成方块数据。目前,我将所有方块分成了7种,如下所示:

像这种情况用枚举来区分类型是最方便的,之前已经创建了一个脚本PublicData用了存放零碎数据,枚举类也可以放这里面:
// 方块类型
public enum EBlockType
{
TYPE_INVALID,
TYPE_T,
TYPE_L_LEFT,
TYPE_L_RIGHT,
TYPE_Z_LEFT,
TYPE_Z_RIGHT,
TYPE_I,
TYPE_O,
TYPE_TEST
}
第一个值表示默认值,初始化时用,最后一个值是用于测试的,中间的值正好对应7种方块。
有了枚举之后,还需要一个类用于生成方块。在脚本文件夹中添加一个类:BlockCreator。
该类采用单例模式,有一个对外方法:CreateBlock(),返回一个方块数据,就是像素点列表。
下面来实现这个类:
01.首先是单例模式的实现
public class BlockCreator
{
// 唯一的实例
private static BlockCreator blockCreator = null;
// 私有化构造方法
private BlockCreator() { }
// 获取实例
public static BlockCreator GetInstance()
{
if (blockCreator == null) blockCreator = new BlockCreator();
return blockCreator;
}
}
02.添加创建方块方法
// 创建方块
public List<MyPoint> CreateBlock(EBlockType blockType)
{
List<MyPoint> listPoint = new List<MyPoint>();
switch (blockType)
{
case EBlockType.TYPE_T:
break;
case EBlockType.TYPE_L_LEFT:
break;
case EBlockType.TYPE_L_RIGHT:
break;
case EBlockType.TYPE_Z_LEFT:
break;
case EBlockType.TYPE_Z_RIGHT:
break;
case EBlockType.TYPE_I:
break;
case EBlockType.TYPE_O:
break;
case EBlockType.TYPE_TEST:
break;
}
return listPoint;
}
本节先写一个框架,下一节来实现数据填充和随机类型。
代码链接:https://pan.baidu.com/s/1veDXFz3PRIJ0Vw9iBsSX9A
提取码:x3pb