Java-屏幕上的矩形随播放器移动

Java-屏幕上的矩形随播放器移动,java,rectangles,2d-games,Java,Rectangles,2d Games,我制作了一个2D Java游戏,在2D地图上有一个长方形,上面有障碍物,我一直在设置与长方形的碰撞,但它们不起作用,经过更多的实验后,我很快意识到我为障碍物制作的长方形正在与我的玩家一起移动,我的意思是,如果我在坐标0上设置一个长方形,0它将停留在我的GUI的左上角,并在我移动播放器时移动,它会一直停留在那里,而不会固定在地图上 我设置了以下变量: Animation bucky, movingUp, movingDown, movingLeft, movingRight Image world

我制作了一个2D Java游戏,在2D地图上有一个长方形,上面有障碍物,我一直在设置与长方形的碰撞,但它们不起作用,经过更多的实验后,我很快意识到我为障碍物制作的长方形正在与我的玩家一起移动,我的意思是,如果我在坐标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);
一个矩形将停留在屏幕的左上角,我假设当我用变量设置矩形并尝试创建碰撞时会发生这种情况,这就是为什么我的碰撞不起作用。总的问题是,我如何编辑我的代码,使我的矩形固定在地图上,而不与我的播放器一起移动

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

节将永远不会被执行,如果它永远不会被执行,有什么意义呢?

我想我们需要更多的信息。世界地图是否比屏幕的显示区域大?你如何存储碰撞物体等。我猜想bucky停留在窗口的中间,地图“移动”在它下面,在这种情况下,你的矩形将不会移动与bucky更多的是,他们都站着不动。你需要使用buckyPositionX和BuckyPositionY,而不是(0,0100100)。为了更快地获得更好的帮助,发布一个。我认为他曾想过在单击任何字符串时将quit设置为false,但他尝试只显示必要的代码,并将其删除。