美文网首页
Unity学习笔记(22)——FlappyBird

Unity学习笔记(22)——FlappyBird

作者: 超级炮锤 | 来源:发表于2018-11-11 01:34 被阅读0次

    第六天鼓捣FlappyBird了,收尾一下暂告一段落吧

    1.今天把重写完成了,果然是各种坑,包括重命名各处的类,引用的脚本修改,甚至有一些Prefab都得复制出来一份单独处理。方法知道了,纯堆工作量处理起来还比较快。运行起来除了一些已知的Bug,倒也没有引入新Bug。然而有些令人沮丧的是,我们一个开发经过看到了正在做的Demo,并不觉得新加的两个模式特别有意思。可能也是我对自己的成果寄予了太高的希望吧

    2.昨晚想的新增道具,从策划的角度来说挺容易的功能,自己开发的时候才发现并不简单。举例来说冲刺,策划的角度大致这样描述:

        1)吃到冲刺道具后,马上开始以更高速度向前飞行,持续N秒

        2)冲刺期间不受控制,也无视障碍可以直接穿过

        3)冲刺结束后立即可以控制,但会有短暂的时间无敌,不会直接撞死

    开发的角度:

        1)吃到道具好说,碰撞触发某个函数就行了,这个最后再写。首先是冲刺怎么表现。实际上鸟是不会向前移动,只会上下移动的,是地图和障碍在相对地向后运动。于是冲刺期间背景和障碍移动速度提高两倍,不过单纯这样效果并不好,还要配合鸟的位置比平常更靠前一些,营造出更有速度的感觉。逐渐加速到靠前位置的函数太难写了,简化一下,一旦开始冲刺,将所有鸟的位置比平常右移2个身位。虽然生硬,好歹是更有表现力一些了

        2)不受控制好说,在Update函数中增加一个isRush的判断,为True的时候跳过点击检测就好了。无视障碍好说,把鸟上面的PolygonCollider移除就不会撞到了

        3)其实是边做边想到的优化,还没来得及做

    因为涉及到时间控制,还需要使用协程来写冲刺的方法,鼓捣了半天写完了,结果测出了一堆Bug

    首先是发现鸟直愣愣的掉下去了,原来是冲刺期间还受到重力的影响,好说,把冲刺期间的重力移除。

    然后发现有时候玩着玩着会报错,提示找不到PolygonCollider组件却尝试移除。原来是之前写鸟死亡的方法的时候,图方便把死掉的鸟的这个组件直接移除了,假如这时候再开始冲刺,就会找不到组件。于是在移除组件的时候加了个组件不能为null的判断

    再就是有时候刚撞死一只鸟,开始冲刺,发现死了的鸟也跟着冲了起来- -|||总算是能够理解开发写出各种奇异的Bug时候的心情了

    有时候Bug和需求本身的大小并没有太大的关系,一方面是策划对于各种边缘情况的考虑,另一方面是开发对于更边缘情况的考虑,以及对于需求本身的理解


    水平有限,这个Demo就到此为止吧,还是老老实实学课程去!

    双十一快乐

    2018.11.11 1:34

    相关文章

      网友评论

          本文标题:Unity学习笔记(22)——FlappyBird

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