記錄乙個粗心所導致的bug

2021-08-26 19:56:45 字數 1227 閱讀 7080

前言:

前天給遊戲裡面增加了乙個 sensor 型別的fixture,

這個 fixture 主要用來處理碰撞,說的具體一點,用來處理浮力。

不知道別人是怎麼做浮力的,我之前也沒什麼經驗,又一次在和夥計討論**效果的時候,

夥計對 box2d sensor 的**稍作改動,粗略的實現了**的效果。

當時我覺得這個效果應該會有用到的地方,便留下了一點兒印象。

後來做水浮力的時候,我想到水浮力也不就和**差不多麼,

只不過前者由圓心向外輻散,而後者則是對感知到的物體施加乙個持續向上的力。

說幹就幹,後來一看效果,還不錯。

不過還是遇到了一些問題,諸如:

小密度的物體應該是要比較淡定的漂浮在水面上的,

但這種實現達到的效果卻是——小密度物體上下抖個不停。

還有就是,為了真實的讓玩家感受到水是具有阻力的,

我特意在物體剛接觸水面時將物體的線速度,角速度都做了比較大幅度的削減。

如果按照物理知識來做的話,物體進入水中的時候,

如果重力與浮力相等或者是大於浮力,依然會以加速度下沉。

就不多說什麼了,有時候為了效果逼真,反而要去違背實際物理情景。

回到正題

話說這裡遇到了乙個bug:

就是在剛剛進入遊戲的時候,竟然發現物體落水的時候沒有速度驟減的效果,

之前由於在做別的效果,也沒太留心。

今天早上起床之後又遇到了這個問題,於是便決定專心將這個bug乾掉。

這次我開啟了box2d的 debugdraw,過不其然,debugdraw 一開啟,這個bug便再經不起推敲。

何出此言?因為我發現某些剛進入關卡的時候,場景底部的 sensor fixture 竟然都不存在。

具體來說,某些時候應該是指剛開啟遊戲的時候。

值得注意的是,浮力感知 sensor fixture 的寬度大小是基於地圖的寬度大小的。

我的第乙個猜測便是,可能在地圖的寬度大小資料還未載入進來的時候,便完成了 sensor fixture 的建立。

這樣, sensor fixture 拿到的地圖的寬度大小肯定是乙個未初始化的值,

如果這個值是0,那麼便能很好的解釋上面出現的現象。

那是因為,我將地圖的尺寸儲存到了單例裡面,在第二次以及之後那地圖寬度資料的時候,是能正常拿到的。

有了想法回到專案裡面一看,果然如我所料。

very good,bug 被成功乾掉!

乙個因為粗心的Bug

資料繫結,分頁顯示 private void updatamenu final edittext search pageid 0 listwz.setadapter null filterarray new jsonarray filterarray usedatabase.wzarray sear...

Calendar 導致的乙個bug

查詢不到資料。把calendar生成的date通過gettime 列印出時間戳。因為資料庫裡的資料是每天生成的,所以對應的時間毫秒為0,而calendar生成的時間沒有對毫秒進行set值覆蓋,導致使用到了當前時間的毫秒值。此時由於查詢條件是 導致這部分資料被忽略掉了。由於 calendar.geti...

記錄乙個BUG

vm版本 kali版本 centos 8 版本 vmtool版本 新裝的centos8 因為無法拖拽檔案到虛擬機器中,就重新裝了一下vmtool,安裝之後還是不行,開啟kali發現原本裝好的vmtool,現在也不能拖拽檔案了,就又在kali重灌了一次,還是不能拖拽,上網查了一下,在執行.vmware...