2012-06-26 72 views
0

我通常對Java和Slick2D都不熟悉,即使在瀏覽Google之後,我也找不到我的問題的答案。 在我的遊戲中,我有一個角色可以當前來回運行,並跳轉。我希望他能夠發射拋射物,但是按照我編碼的方式,拋射物在切換方向或跳躍時會改變軌跡。Java Slick2D拍攝問題

if(input.isKeyPressed(Input.KEY_SPACE)){  
     shotX = charPosX; 
     shotY = charPosY; 
    if(left){ 
      shotX += delta * -0.5f;    
     }else{ 
      shotX +=delta * 0.5f; 
     } 

} 

這基本上是我目前的代碼。 「左」布爾值只是說明角色是朝左還是朝右。我覺得我錯過了一些顯而易見的東西,但我想知道是否有人對此有一個簡單的解決方案,或許是一種在渲染後將角色的位置設置爲角色位置的方法。任何幫助表示讚賞。

+0

什麼類型是shotX和charPosX?我希望這是分配參考而不是價值,但如果你稍微擴展這些信息,我應該可以提供幫助。 –

+0

我所有的位置變量都是浮動的。而且,這聽起來像是我在找的東西。你能否詳細說明我將如何分配參考而不是價值? –

+0

花車或花車,與一個大的F? –

回答

0

正如你在評論中告訴的那樣,很難從這樣的小代碼中確定情況,但是我認爲問題在於,當空格鍵被佔用時,你執行的if子句會被執行,將子彈的位置設置爲角色的位置。

可能會更好的是在bullet類中有一個布爾值,指示它是否已被觸發,然後通過將delta增加的值加上值來更新每個更新週期的位置。您所描述的情況似乎只有一個子彈在每次空格鍵被重置時重置。

另外,子彈只能在空格鍵被保持時移動,因爲移動代碼在if語句中。我希望這有幫助。