我已經做了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);
矩形將留在我的屏幕的左上角,我假設這發生在我設置我的矩形時減少我的變量,並嘗試創建碰撞,這就是爲什麼我的碰撞不起作用。總的問題是,如何編輯我的代碼以保持我的矩形卡在地圖上,而不是隨我的播放器一起移動。
我想我們在這裏需要更多的信息。世界地圖是否大於屏幕的顯示區域?你是如何存儲碰撞等對象 –
我猜巴基斯停留在窗口的中間和地圖「移動」下方,在這種情況下,您的矩形將不會與巴克移動更多,他們都站在靜止。而不是(0,0,100,100),則需要使用buckyPositionX和buckyPositionY – BevynQ
爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –