美文网首页手把手教你Unity开发俄罗斯方块
第十二节 在主屏幕类中加入图层

第十二节 在主屏幕类中加入图层

作者: 安静的程序员 | 来源:发表于2019-06-24 09:31 被阅读0次
01.添加图层列表成员

打开主屏幕类,添加代码:

List<Layer> _layerList;     // 图层列表
02.添加默认图层

我的设定是即使没有任何图形需要显示,也要添加一个空白的图层,因为图形是以图层为单位进行叠加的,所以至少需要一个图层。
编辑代码,在主屏幕类中添加一个方法:

// 初始化图层
void InitLayer()
{
    _layerList = new List<Layer>();

    // 新建默认图层
    Layer defaultLayer = new Layer();
    defaultLayer.Name = "DefaultLayer";
    // 添加至图层列表
    _layerList.Add(defaultLayer);
}
03.重构初始化方法

当代码量增加,结构变得复杂、混乱时,必须要保证代码结构的简洁,这在团队合作时非常重要,要有出现混乱时立即重构代码的习惯。
到目前,初始化工作分为了初始化屏幕(创建像素点阵列)和初始化图层,初始化图层已经写好了,还需要写一个初始化屏幕的方法,然后将之前写在初始化方法中的代码转移至新方法:

// 初始化屏幕
void InitScreen()
{
    // 创建空数组
    _screen = new GameObject[_ScreenHeight, _ScreenWidth];

    // 遍历行
    for (int line = 0; line < _ScreenHeight; line++)
    {
        // 遍历列
        for (int list = 0; list < _ScreenWidth; list++)
        {
            // 计算坐标
            int x = _ScreenPoint_x + list * (_PixelSize + _PixelInterval);
            int y = _ScreenPoint_y + line * (_PixelSize + _PixelInterval);
            Vector3 point = new Vector3(x, y, 0);
            // 实例化像素点
            GameObject pixel = Instantiate(Pixel, point, Quaterni-on.identity) as GameObject;
            // 将像素点对象绑定至数组中对应的对象
            _screen[line, list] = pixel;
        }
    }
}

在初始化方法中调用初始化屏幕和初始化图层方法:

// 初始化
public void Init()
{
    InitScreen();
    InitLayer();
}
04.添加方法——添加图层与获取图层

除了默认图层外,肯定还需要新的图层,所以先添加一个“添加图层”的方法;然后要在图层上添加显示数据的话,肯定要先获取图层,下面就是两个方法的代码:

// 添加图层
public void AddLayer(string layerName)
{
    Layer defaultLayer = new Layer();
    defaultLayer.Name = layerName;
    // 添加至图层列表
    _layerList.Add(defaultLayer);
}

// 获取图层
public Layer GetLayer(string layerName)
{
    foreach (var item in _layerList)
    {
        if (item.Name == layerName) return item;
    }

    return null;
}

关于图层的代码就先告一段落了,接下来,我们要尝试来显示点图形了。

代码链接:https://pan.baidu.com/s/1hqJeMrZ572_hco6PCmFM1w
提取码:e7kk

相关文章

  • 第十二节 在主屏幕类中加入图层

    01.添加图层列表成员 打开主屏幕类,添加代码: 02.添加默认图层 我的设定是即使没有任何图形需要显示,也要添加...

  • 第十三节 来显示点图形

    01.添加显示数据 编辑导演类,首先获取主屏幕的默认图层: 随便添加点显示数据: 02.重点来了:刷新主屏幕 显示...

  • CALayer

    CALayer 父类是NSObject layer(图层):在iOS中,UIView之所以能显示在屏幕上,完全是因...

  • 第十一节 添加图层类

    01.图层的作用 主要作用就是方便管理图形,相当于对图形分组。主屏幕需要维护一个图层列表,每个图层分别维护自己图层...

  • iOS动画事物(CATransaction)

    动画事物 CATransaction是 Core Animation 中的事务类,在iOS中的图层中,图层的每个改...

  • Core Animation系列之CATransaction

    CATransaction是 Core Animation 中的事务类,在iOS中的图层中,图层的每个改变都是事务...

  • iOS动画原理--模型树和呈现树

    模型树和呈现树 CoreAnimation作为一个复合引擎,将不同的视图层组合在屏幕中,并且存储在图层树中,向我们...

  • Xfermode Mode 解析

    描述 在图层混合中,我们会用到PorterDuffXfermode 这个类,但是这个类中需要传入PorterDuf...

  • iOS中的 呈现/模型 图层

    图层树通常都是指图层树模型。在iOS中,屏幕每秒60帧,如果动画时长大于1帧的时长,CoreAnimation就需...

  • Android10模拟器上调试双屏异显

    Android SDK 提供了Display类,实现在主屏幕之外的扩展屏幕上显示不同于主屏幕的UI,而扩展屏幕上的...

网友评论

    本文标题:第十二节 在主屏幕类中加入图层

    本文链接:https://www.haomeiwen.com/subject/rhtnqctx.html