目前重構過程工作目錄:
0.00-original
0.00(2)-original.fps
0.02-move.render.renderunits.to.world.renderunits
0.04-harvest
0.06-firstattackcommand
0.08-2ccrepair.hascommontype
0.08-最後乙個caommandtypes.但改了之後會crash.所以未改
0.10-computefirstctofclass
0.12-替換全部的commandtype**ap
0.14-替換airulebuildonefarm中的test中的getcommandtype函式
0.16-替換gui中的getcommandtype函式
0.18-刪去了unittype中的commandtype
0.20-fps
0.22-修改commandtype和unitupdater的關係.***unitupdater的變數未初始化
0.24-修改commandtype和unitupdater的關係.通過全域性變數game修正bug
0.26-***unitupdater初始化放進unitupdater
0.28-unitupdater中的updateunit轉入world
0.30-重構parthfinder為singleton
圖2 unitupdater-commandtype
void ***commandtype::update()
進而,將***commandtype::update()上公升為commandtype::update()
void commandtype::update()
這樣就可以把commandtype中對unitupdater::update***()的呼叫統一起來。
commandtype和skilltype都是行為。但skilltype是baseic action;而commandtype是complex action, composed by skills。下面是類關係圖。
圖3 commandtype-skilltype
把parthfinder轉為為singleton。
發現singleton模式可以讓**寫得很優雅――免去了函式呼叫過程中傳遞parthfinder引數,僅僅將parthfinder標頭檔案包含進來就可以了。
在螢幕上顯示
fps,如果每一幀都顯示
fps=1/δt
時,會發現顯示的數字抖動很厲害,更本看不清是多少。
現在用「取均值」的方法解決了這個問題。顯示連續
5幀的平均的
圖4 fps:29.1
(圖左上角)
對rainparticlesystem
的改動,原因如下:
遊戲登陸畫面出現時,背景中雨滴從天而降,但最下面的雨滴形成了乙個明顯的面,看起來很不舒服。
5 背景中的雨滴形成了乙個「面」
rainparticlesystem
初始化時,將
partical的y
座標修改為區域隨機值。畫面有了較好的改善。
6 隨機化
y座標後的
rain
但rain
的效果沒有最初的好。乙個比較好的方法應該是,登陸時
rain partical
不是從time =0
時刻開始生成,比如說從
time
=10.0
開始生成。此時玩家登陸時看到的雨滴已經到達地面,不會在出現那個「面」了。
《重構》 2 重構原則 讀書筆記
1 重構不只是整理 而是一種更搞笑且受控的 整理技術。2 但必須對軟體 可受觀察之外部行為 只造成很小變化,或甚至不造成變化。與之形成對比的是 效能優化 和重構一樣,效能優化通常不會改變元件的行為,只會改變其內部結構。但是兩者出發點不同 效能優化往往使 較難理解,但為了得到所需的效能你不得不那麼做。...
讀書筆記 2 重構(Ruby)版
但你覺得需要注釋的時候,應該首先嘗試重構 這樣任何注釋都會變得多餘。自我測試 的價值,當你收到乙份bug報告時,首先編寫單元測試來暴露bug。編寫執行不完整的測試也比不執行的完整測試要好。思考可能會出錯的邊界條件,並集中測試它們。別忘了測試那些出錯時期望丟擲的異常。不要因為害怕測試不能捕捉所有的bu...
1253 重構2行矩陣
給你乙個 2 行 n 列的二進位制陣列 矩陣是乙個二進位制矩陣,這意味著矩陣中的每個元素不是 0 就是 1。第 0 行的元素之和為 upper。第 1 行的元素之和為 lower。第 i 列 從 0 開始編號 的元素之和為 colsum i colsum 是乙個長度為 n 的整數陣列。你需要利用 u...