第六天鼓搗FlappyBird了示辈,收尾一下暫告一段落吧
1.今天把重寫完成了胜蛉,果然是各種坑闹啦,包括重命名各處的類沮明,引用的腳本修改,甚至有一些Prefab都得復(fù)制出來一份單獨處理窍奋。方法知道了荐健,純堆工作量處理起來還比較快。運行起來除了一些已知的Bug琳袄,倒也沒有引入新Bug江场。然而有些令人沮喪的是,我們一個開發(fā)經(jīng)過看到了正在做的Demo窖逗,并不覺得新加的兩個模式特別有意思址否。可能也是我對自己的成果寄予了太高的希望吧
2.昨晚想的新增道具碎紊,從策劃的角度來說挺容易的功能佑附,自己開發(fā)的時候才發(fā)現(xiàn)并不簡單。舉例來說沖刺仗考,策劃的角度大致這樣描述:
? ? 1)吃到?jīng)_刺道具后音同,馬上開始以更高速度向前飛行,持續(xù)N秒
? ? 2)沖刺期間不受控制秃嗜,也無視障礙可以直接穿過
? ? 3)沖刺結(jié)束后立即可以控制权均,但會有短暫的時間無敵,不會直接撞死
開發(fā)的角度:
? ? 1)吃到道具好說痪寻,碰撞觸發(fā)某個函數(shù)就行了螺句,這個最后再寫。首先是沖刺怎么表現(xiàn)橡类。實際上鳥是不會向前移動蛇尚,只會上下移動的,是地圖和障礙在相對地向后運動顾画。于是沖刺期間背景和障礙移動速度提高兩倍取劫,不過單純這樣效果并不好,還要配合鳥的位置比平常更靠前一些研侣,營造出更有速度的感覺谱邪。逐漸加速到靠前位置的函數(shù)太難寫了,簡化一下庶诡,一旦開始沖刺惦银,將所有鳥的位置比平常右移2個身位。雖然生硬,好歹是更有表現(xiàn)力一些了
? ? 2)不受控制好說扯俱,在Update函數(shù)中增加一個isRush的判斷书蚪,為True的時候跳過點擊檢測就好了。無視障礙好說迅栅,把鳥上面的PolygonCollider移除就不會撞到了
? ? 3)其實是邊做邊想到的優(yōu)化殊校,還沒來得及做
因為涉及到時間控制,還需要使用協(xié)程來寫沖刺的方法读存,鼓搗了半天寫完了为流,結(jié)果測出了一堆Bug
首先是發(fā)現(xiàn)鳥直愣愣的掉下去了,原來是沖刺期間還受到重力的影響让簿,好說敬察,把沖刺期間的重力移除。
然后發(fā)現(xiàn)有時候玩著玩著會報錯拜英,提示找不到PolygonCollider組件卻嘗試移除静汤。原來是之前寫鳥死亡的方法的時候,圖方便把死掉的鳥的這個組件直接移除了居凶,假如這時候再開始沖刺虫给,就會找不到組件。于是在移除組件的時候加了個組件不能為null的判斷
再就是有時候剛撞死一只鳥侠碧,開始沖刺抹估,發(fā)現(xiàn)死了的鳥也跟著沖了起來- -|||總算是能夠理解開發(fā)寫出各種奇異的Bug時候的心情了
有時候Bug和需求本身的大小并沒有太大的關(guān)系,一方面是策劃對于各種邊緣情況的考慮弄兜,另一方面是開發(fā)對于更邊緣情況的考慮药蜻,以及對于需求本身的理解
水平有限,這個Demo就到此為止吧替饿,還是老老實實學(xué)課程去语泽!
雙十一快樂
2018.11.11 1:34