2013-07-23 122 views
0

我正在製作一款2D礦機/冒險遊戲,並且我正試圖讓太陽在屏幕上移動。在一段時間內移動精靈

它應該如何工作,它必須從A點(屏幕左上角)到B點(屏幕右上角)與時間一致。

我發現如何做數學運算,但是當我運行遊戲時,太陽精靈不會讓步。我甚至等了一夜,仍然沒有退縮。我試圖找出爲什麼它不會移動。

我驗證了數學:

public int dayFrame = 0; 
int u = 0; 
int x; 
int y = 36; 
public int dayTime = 7500; 


public void tick() 
{ 
    x = (TritonForge.pixel.width/dayTime) * dayFrame; 
    u += 1; 
    if (u > 4) 
    { 
     dayFrame += 1; 
     u = 0; 
    } 
    (rest of code...) 

它得到單位的屏幕寬度,並且隨着時間的一天有總量除以它。 然後它乘以目前的時間。我知道這是可行的,因爲(TritonForge.pixel.width/dayTime)* dayTime = 640(我的屏幕寬度單位)。

public void render(Graphics gr) 
{ 
    gr.setColor(new Color(r,g,b)); 
    gr.fillRect(0, 0, TritonForge.pixel.width, TritonForge.pixel.height); 
    gr.drawImage(TileArt.sun,x,y, null); 
    gr.drawImage(TileArt.forestback,0,0, null); 
    gr.drawImage(TileArt.foresttree,0,0, null); 
} 

有人可以幫忙嗎?

+0

1)這與JavaScript有什麼關係?在將它們應用於問題之前,請確保*閱讀彈出窗口中有用的標籤描述。 'Java'是'JavaScript','Car'是'地毯'。 2)爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –

+0

假設一天的時間長度爲10秒。調整你的程序在時間範圍內有10秒。起始位置是A,當你運行該程序時,檢查它是否在10秒內進入B點。從那裏調試。 –

+0

這是用java編寫的,javascript是否意味着別的什麼或者什麼? – TRiToNDREyJA

回答

0

這與整數除法有關。你的屏幕寬度大概是TritonForge.pixel.width?當除以dayTime時,它可能總是等於零,因爲你的屏幕不是7,500像素(這裏再次假設)。

這是因爲整數除法舍入到最接近的整數。假設你的屏幕是1200像素。 1200/7500 = .16。這幾輪下來到0

因此,而不是改變你的代碼太...

double x; 
x = (TritonForge.pixel.width/(double)dayTime) * dayFrame; 

和鑄鐵X爲int適當。