Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使gif始终成为活动窗口的背景(位于其他对象后面)?_Java_Background_Stddraw - Fatal编程技术网

Java 如何使gif始终成为活动窗口的背景(位于其他对象后面)?

Java 如何使gif始终成为活动窗口的背景(位于其他对象后面)?,java,background,stddraw,Java,Background,Stddraw,如何使图片或gif在活动窗口中的深度始终高于任何其他可见对象?(使用StdDraw.java) 我正在尝试将动画gif设置到我正在制作的游戏的背景中。但是,每当我创建一个新形状(例如,地面块)时,新对象总是在gif后面。我想让gif无论发生什么都始终位于底部(因为我的代码最终将处理多个对象、文本等) 到目前为止,我的代码是:(注意,我让它按照我所描述的那样工作,但不知怎么搞砸了,它甚至不再显示gif后面的底部块——如果你知道我是怎么搞砸的,那将非常有帮助) 我意识到已经有人问过一个类似的问题:但

如何使图片或gif在活动窗口中的深度始终高于任何其他可见对象?(使用StdDraw.java)

我正在尝试将动画gif设置到我正在制作的游戏的背景中。但是,每当我创建一个新形状(例如,地面块)时,新对象总是在gif后面。我想让gif无论发生什么都始终位于底部(因为我的代码最终将处理多个对象、文本等)

到目前为止,我的代码是:(注意,我让它按照我所描述的那样工作,但不知怎么搞砸了,它甚至不再显示gif后面的底部块——如果你知道我是怎么搞砸的,那将非常有帮助)

我意识到已经有人问过一个类似的问题:但是我相信我在这个问题上的变化值得帮助,因为我不完全确定我如何理解在不大幅更改代码的情况下,该帖子中给出的答案可以应用于我的代码(例如,我使用的是StdDraw,而不是Swing)

我是一个新手,刚接触stackexchange,请原谅我的无知


谢谢你能提供的任何帮助

您正在单个
画布上绘制。首先,
清除
(这将绘制一个全是白色的屏幕)。然后绘制
clouds.gif
。你接下来画的任何东西都将放在
画布上(例如你的图像)。这似乎对我不起作用。我在setYscale下添加了一个StdDraw.clear(),然后放置while循环动画,然后放置填充的矩形代码。这就是你的意思吗?不,它就像一张画布(或一张纸);你画一些东西。如果你画别的东西,它就在上面。如果将填充矩形放在while循环之后,则它将位于动画的顶部(这与所需相反)。
public static void main(String[] args){
    StdDraw.setCanvasSize(800,480);//window dimensions in pixels
    StdDraw.setXscale(0,1);//scale of window
    StdDraw.setYscale(0,1);//scale of window


    StdDraw.setPenColor(StdDraw.BLUE);//pink rectangle (bottom block)
    StdDraw.filledRectangle(0.5,0.0,1.0,0.05);//ground (visual only)
    while (true){//GIF LOOP
        StdDraw.clear(); //clears previous drawing
        StdDraw.picture(0.5, 0.5, "clouds.gif");//cloud gif is 640x480 so the block *should* extend beyond it given the scale
        StdDraw.show(10); 

}