2013-08-30 189 views
0

我正在製作遊戲,並且目前遇到圖形抖動問題。按AWSD鍵時,它會從頂部開始抖動。抖動從頂部開始並傳播到整個屏幕。 這裏是一個視頻文件:https://dl.dropboxusercontent.com/u/94218355/javaw%202013-08-30%2010-36-45-171.avi圖形在Java 2D遊戲中抖動

下面是遊戲文件:https://dl.dropboxusercontent.com/u/94218355/Game.rar 遊戲文件,所以你可以測試一下自己。 請看看Screen.java,因爲我認爲這是錯誤隱藏的地方。

+0

如果你想讓人們閱讀你的整個代碼庫,我建議你告訴我們在哪裏看。 – Cruncher

+0

最好在你的問題中發佈相關數據。大多數人不太可能想要通讀代碼牆,甚至不希望將文件下載到他們的機器上。 –

回答

0

這是一個有教養的猜測,因爲沒有可用的資源。這很可能與您如何處理輸入有關,在java2d遊戲中存在一個常見的錯誤,因爲如果通過接口註冊密鑰,按鍵之間存在固有延遲。如果按住一個鍵(a),則會出現aaaaa..,但實際得到的結果是a|inputlag|a|inputlag|...此延遲相當大(比通常的60 FPS高很多),因此按住鍵可將相機移動到相機看起來很緊張。

簡單的解決方案是使用鍵的布爾標誌,一旦按下鍵就將它們設置爲真,一旦釋放它就將其設置爲假,請參閱我的示例代碼here。或使用keybindings

+0

我剛添加了源代碼。對不起,第一次忘記。 – user2733323

+0

是的,正如我懷疑的那樣,因爲您正在擴展canvas並且正在執行addKeyListener,所以您正在實現KeyListener接口,這意味着您會遇到我描述的延遲。 – arynaq