Java - 屏幕上的矩形与播放器一起移动

时间:2012-12-26 22:29:57

标签: java rectangles 2d-games

我制作了一个2D Java游戏,我在2D地图上有一个有障碍物的矩形,我一直在设置与矩形的碰撞但它们没有工作,经过一些实验后我很快意识到我制作的矩形因为我的障碍物正在和我的玩家一起移动,我的意思是如果我在坐标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)

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

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