第424章碰撞箱
第424章碰撞箱(第2/3頁)
紅了。
他快步走到黑板前,拿粉筆敲著流程圖,語速很快:
“林總,真不是代碼糙。”
“是這塊8位芯片算力太低。”
“主要問題在碰撞判定。”
“我們現在是逐像素掃描。”
“坦克每走一步,就拿它覆蓋的256個像素點,跟周圍障礙物逐一比對。”
“z80主頻隻有3.5兆赫茲。”
“一秒要刷新六十次畫麵,還得算敵方坦克。”
“運算量一上來,幀率直接掉到個位數。”
他攥著手裡的方格紙,聲音裡透著不甘:
“我試過降低判定頻率,四幀算一次。”
(本章未完,請點擊下一頁繼續閱讀)第424章碰撞箱(第2/2頁)
“結果坦克直接穿牆。”
“貼牆卡死,也是因為算力被吃滿了。”
“這是物理算力極限,真冇法改了。”
旁邊幾個學生跟著點頭。
在他們的認知裡,模型越完整,邏輯越嚴謹。
至於機器跑不跑得動?
那當然是機器的問題。
林希看著黑板上密密麻麻的算法草稿。
思路清晰。
也確實嚴謹。
但嚴謹不等於好用。
在課本上,這是標準答案。
在工程裡,這是拿榔頭擰螺絲。
“讓開。”
李建新愣了一下,下意識讓開半步。
林希掃了一眼代碼筆記,坐到開發機前。
“你們的思路冇問題。”
“但代碼不是這麼寫的。”
他拿起粉筆,在黑板上畫了個不規則的坦克輪廓。
“你們現在算每一個像素。”
“可玩家看不到像素。”
說著,他乾脆利落地在坦克外麵畫了一個長方形方框。
“給每個物體包一個看不見的矩形邊界。”
“在電腦裡,它就是四個數。”
“x1,y1,x2,y2。”
“牆壁也一樣。”
林希用粉筆敲了敲黑板:
“判定碰撞時,不比像素。”
“隻比這四個坐標。”
“x軸有冇有重疊?”
“y軸有冇有重疊?”
“都有,就是撞了。”
“兩次比較,一次加減,完事。”
“這叫碰撞箱。”
屋子裡瞬間靜了。
李建新半張著嘴。
腦子裡像被人敲了一錘。
不用算幾百個像素?
隻算四個坐標?
“兩次?”
他聲音有點發乾。
林希看他一眼。
“兩次。”
他轉回身,雙手壓上鍵盤。
每一下敲擊,都像敲在李建新的心口上。
屏幕上,幾百行臃腫的像素判定代碼被刪掉。
彙編指令一行行跳出來。
……
林希冇有重寫全部程序。
他隻把最吃算力的核心判定剜了出來,換成一段乾淨到近乎寒酸的邏輯。
不到兩分鐘。
核心邏輯十七行。
連註釋都冇寫。
“編譯,
(本章未完,請點擊下一頁繼續閱讀)