第二十五节 实现加速下落

作者: 安静的程序员 | 来源:发表于2019-06-25 09:01 被阅读0次
    01.分析

    下落方块之前已经实现了,加速移动在左移右移上也已经实现了,如果只是单纯的加速方块下落的话,直接套用左移右移的代码即可,但请考虑以下几个问题:
    首先,系统本身是有个定时器在不断控制方块的下落,然后现在又要用键盘来控制下落,如果一直按着下落,那么每隔一秒钟,方块会突然加速,这种体验很不好,所以,在按下方向键的时候,我需要关闭系统的自动下落。
    自动下落关闭后,如果不松开下方向键,那游戏就会一直在执行下落方块,即使方块已经到底端了,这样游戏进程就断了。最优的解决方案是:
    当按下下方向键时,不是单纯的加速下落,应该是加速游戏进程,也就是加速GameCore()的执行。

    02.实现

    当按下下方向键后,首先是停止GameCore(),然后启动一个更快的定时器,执行GameCore()。松开后,再次停止GameCore(),然后启动正常速度的定时器,执行GameCore():

    // 按键 - 下方向键
    if (Input.GetKeyDown(KeyCode.DownArrow))
    {
        CancelInvoke("GameCore");
        InvokeRepeating("GameCore", 0, 0.05f);
    }
    if (Input.GetKeyUp(KeyCode.DownArrow))
    {
        CancelInvoke("GameCore");
        InvokeRepeating("GameCore", 0, 1);
    }
    

    在测试的时候,感觉左右移动太迟钝了,所以调整了下速度,将原来的0.3秒和1.0秒改成了:

    InvokeRepeating("MoveLeftBlock", 0.2f, 0.05f);
    InvokeRepeating("MoveRightBlock", 0.2f, 0.05f);
    

    四个方向键就只剩下一个上方向键了,该方向键的功能是旋转方块。之所以放到最后讲,因为——好戏总是在后面。

    代码链接:https://pan.baidu.com/s/1eDdelRjaOgqT2JbKTOK4vA
    提取码:bdwq

    相关文章

      网友评论

        本文标题:第二十五节 实现加速下落

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