2017-06-02 71 views
0

我是相當新的編程,但我設法學習如何設置一個基本的遊戲循環與左/右/上/向下控制。唯一的問題是當相機移動時出現圖形故障(來回抖動)。我已經研究過雙緩衝,但我認爲問題可能在於倉位如何存儲,但我無法弄清楚。在相機控制遊戲循環中的十六進制網格,抖動問題(由於錯誤的位置?)

抖動

via GIPHY

下面的視頻是該項目https://github.com/Im300/HexTest

具體而言,我認爲這個問題是與六角類,它是由

G2D存儲和轉化的方式.translate(cam.getX(),cam.getY());

函數由GamePanel類調用。我試圖通過改變相機和六邊形類(周邊存儲,四捨五入等)來修復它,但毛刺仍在繼續。

我用這個hex網格的實現。 (Algorithm to generate a hexagonal grid with coordinate system

非常感謝

回答

0

你的代碼簡單地服用後一看,很可能是因爲您處理雙打VS整數的方式。也許一些舍入誤差是你問題的根源。

我建議你爲攝像頭和十六進制的所有「點」值使用雙打。然後你可以在繪製方法中將這些雙打轉換成整數。這將保證你的邏輯中的任何可能的舍入誤差都會減少到幾乎沒有。

+0

我試過改變一切雙打,但取決於相機速度/線厚度等電網不斷振動稍微或口吃。即使相機位置和十六進制位置都以double形式保存,然後在繪製時截斷,似乎最終結果仍然不夠精細,無法進行平滑渲染。 https://giphy.com/gifs/JBzG7UcL5rNvy – lm300Q