使用 Slick2D 滚动背景

Scrolling Background with Slick2D

可以找到我正在尝试做的事情的完整来源here

我正在尝试按上面的方法制作背景卷轴,我已经进展到无限大了,但似乎中途消失了。我目前被困住了,不知道如何从这一点开始。

您可以通过将上面提供的 git 克隆到 eclipse 来演示它。它应该无需任何设置即可即时运行。 canvas 尺寸为 1000 x 720。

int bgend=-(1000-bg.getWidth());
public void update(int delta){
    x-=delta*0.2;
    nx-=delta*0.2;
    if(x<=bgend&&x>=-bgend+delta*0.2){nx=1000;}
    else if(nx<=bgend&&nx>=-bgend+delta*0.2){x=1000;

    }

这是与滚动相关的逻辑。然后这些值被用来渲染图像,

public void render(Graphics g){

bg.draw(x, y, bg.getWidth(), 720);

bg.draw(nx, y, bg.getWidth(), 720);


}

这一切也在link中提供。 谢谢。

我可以知道图片的尺寸和屏幕的尺寸吗?! 我想也许你需要 "cut" 渲染方法中的图像取决于你在状态中滚动了多少 down/up.. 让我更清楚地使用 bottons:让我们假设每个 "W"在 "y" 轴上向上 1 个像素,每个 "S" 向下 1 个像素,图片高 1000 像素,状态设置为 500 像素高,假设我们从底部开始那张照片所以我们需要爬得更高,所以每次 W 推 我们在更新方法中更新参数 "UP",然后在渲染方法中我们使用 "IMAGE.getSubImage(XstartPoint,YstartPoint,hight,width)" 剪切照片。我希望这对你有用。