一開始接觸捕魚遊戲,對魚的路徑處理,採用CAD畫圖軟件繪製出路徑。程序員
具體作法是,首先由程序員或者美工,使用CAD輔助繪圖軟件,將路徑一一繪製出來,而後使用自制的插件,將路徑圖以指定的格式保存。在遊戲內解析路徑文件,構建一個路徑管理對象,保存路徑信息。在程序內,路徑信息包含位置和角度信息,魚的對象經過路徑管理對象,就可使用路徑,在畫面上按指定路線運動。框架
因爲長時間以這種方式,指定魚在畫面上的位置和方向。因而乎,在我每次遇到,須要跑特殊路徑的魚或者是須要程序來計算來指定路徑時,我下意識的想法是:根據位置來求角度信息。補充一下,魚在畫面上的姿態,是由位置和角度兩個信息決定。如何用程序指定特殊的路線呢?曲線方程!可是,曲線方程的斜率,即魚的前進方向是很難肯定。在工做過程當中,個人boss之前就是從事CAD繪圖軟件插件的編制的,他從不止一次的想我傳達過,曲線離散化後,是很難精準的還原到顯示器上。我在瘋狂捕魚原創團隊出版的一本書裏,獲得的信息,也是先制定曲線,計算位置,再計算方向。這也堅決了我最初的想法。學習
後來同事在處理一條很特殊的魚的路徑時,一直出情況。這時,咱們使用的框架是cocos2d-x,我同事使用CAction,點到點的移動,來肯定運動路徑。因爲他在指定時間長短時,沒有聯合點到點的長度計算,致使速度不是突然太快,就是突然太慢。我當時就在想--速度,速度!!對,魚的運動屬性是由它的當前位置加速度決定。速度是一個向量,有大小和方向,方向就是運動的方向。因而,我用速率和速度的方向來計算魚的下一點的位置,並直接用速度的方向指定魚的方向。插件
一開始我使用的是S-T模式,即位置-時間關係,後面一個是使用V-T模式,即速度-時間關係。兩個均可以肯定魚的下一點的位置。可是S-T模式,角度直接用程序計算是很複雜,主要也是我無法操做。對象
後來我一直在想,是什麼使我陷入一種固定的思考方式。一條筋,差很少一直在位置和角度的計算上糾結。 遊戲
思惟定勢加惰性!人都是有惰性的,若是之前解決過的問題,再次出現,通常是堅決果斷的再次使用之前的方案,解決相似問題。在重用方案以前,做爲一枚程序猿,應該作些什麼工做呢?不少時候,程序員在採納以往方案時,並無思考,爲何必定要這麼作。就是別人問起,通常也是很理所固然的回答:之前就是這樣作的。但是之前爲何這樣作?做爲一枚優秀的程序猿,是應該積極的去思考。這個過程,是本身學習的過程,也是一個進一步去改進解決方案的機會。 io