我制作了一个 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);
一个矩形将留在我的屏幕的左上角,我假设当我用我的变量设置我的矩形并尝试创建碰撞时会发生这种情况,这就是我的碰撞不起作用的原因。总的问题是,我如何编辑我的代码以使我的矩形保持在地图上并且不与我的播放器一起移动。