2012-12-26 66 views
0

我已經做了2D的Java遊戲,我有一個二維地圖,其中有障礙物上的一個矩形,我已經設置了矩形碰撞和他們沒有工作,經過一些嘗試我很快意識到,我爲我的障礙物製作的矩形正在與我的玩家一起移動,我的意思是,如果我在座標0,0上設置了一個矩形,它將保留在我的GUI的左上角,並在移動我的玩家時移動,它始終保持在那裏,而不是固定在地圖上。爪哇 - 矩形與播放器屏幕上移動

我有以下變量設置:

Animation bucky, movingUp, movingDown, movingLeft, movingRight 
Image worldMap; 
boolean quit = false; 
int[] duration = {200, 200}; 
int buckyPositionX = 0; 
int buckyPositionY = 0; 
int shiftX = buckyPositionX + 320; 
int shiftY = buckyPositionY + 160; 

而且在我的渲染方法,我有以下幾點:

public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException{ 
worldMap.draw(buckyPositionX, buckyPositionY);//position 0,0 
bucky.draw(shiftX, shiftY);//makes him appear at center of map 

if(quit==true){ 
    g.drawString("Resume(R)", 250, 100); 
    g.drawString("Main(M)", 250, 150); 
    g.drawString("Quit Game(Q)", 250, 200);  
    if(quit==false){ 
     g.clear(); 
    } 
} 
} 

如果我把我的渲染方法中:

g.fillRect(0,0,100,100); 

矩形將留在我的屏幕的左上角,我假設這發生在我設置我的矩形時減少我的變量,並嘗試創建碰撞,這就是爲什麼我的碰撞不起作用。總的問題是,如何編輯我的代碼以保持我的矩形卡在地圖上,而不是隨我的播放器一起移動。

+1

我想我們在這裏需要更多的信息。世界地圖是否大於屏幕的顯示區域?你是如何存儲碰撞等對象 –

+0

我猜巴基斯停留在窗口的中間和地圖「移動」下方,在這種情況下,您的矩形將不會與巴克移動更多,他們都站在靜止。而不是(0,0,100,100),則需要使用buckyPositionX和buckyPositionY – BevynQ

+0

爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –

回答

0
if(quit==false){ 
     g.clear(); 
} 

部分將永遠不會被執行,如果它永遠不會被執行,那麼它有什麼意義?

+0

我認爲他認爲在單擊任何字符串時將quit設置爲false,但他試圖僅顯示必要的代碼並將其取出。 – user7185318