Java Spirte是在背景下绘制的
我正在用Slick2D开发一个StateBasedGame(只是为了学习),我遇到了一个问题Java Spirte是在背景下绘制的,java,slick2d,Java,Slick2d,我正在用Slick2D开发一个StateBasedGame(只是为了学习),我遇到了一个问题 walkingRight.draw(0,250); 此动画在背景精灵下绘制。我不知道如何让它在上面。我一点也看不见 完整代码: package gamelogic; import org.lwjgl.input.Mouse; import org.newdawn.slick.*; import org.newdawn.slick.gui.MouseOverArea; import org.n
walkingRight.draw(0,250);
此动画在背景精灵下绘制。我不知道如何让它在上面。我一点也看不见
完整代码:
package gamelogic;
import org.lwjgl.input.Mouse;
import org.newdawn.slick.*;
import org.newdawn.slick.gui.MouseOverArea;
import org.newdawn.slick.state.*;
public class Level extends BasicGameState {
// INITIATE IMAGES
public Image background;
public Image title;
public Image playButton;
public Image exitButton;
public Animation walkingRight;
public Animation playerIdle;
public int[] duration = {200, 200, 200, 200, 200};
public int durationIdle[] = {200, 200};
// INITIATE VARIABLES FOR TITLE'S POSITION
public float menuPosX;
public float menuPosY;
public Player player;
// __CONSTRUCTOR
public Level(int state) {
}
public void init(GameContainer gc, StateBasedGame sbg) throws SlickException {
background = new Image("res/levelbg.png");
Image[] walkRight = { new Image("res/player/snap0.png"), new Image("res/player/snap1.png"),
new Image("res/player/snap2.png"), new Image("res/player/snap3.png"), new Image("res/player/snap4.png")};
Image idle[] = { new Image("res/player/snap0.png"), new Image("res/player/snap1.png")};
this.walkingRight = new Animation(walkRight, this.duration, false);
this.playerIdle = new Animation(idle, this.durationIdle, false);
}
public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException {
background.draw(0,0);
playerIdle.draw(0,0);
}
public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException {
Input input = gc.getInput();
walkingRight.draw(0,250);
}
public int getID() {
return 1;
}
}
你们能帮我一下吗?好的,我找到了解决办法。不应在update()函数中绘制动画,而应仅在render()函数中以变量作为坐标绘制动画一次。在update()函数中,您将更改坐标,只需为动画变量指定一个不同的动画。这是由于渲染的顺序。渲染前会调用更新,因此会绘制动画,渲染时会在动画顶部绘制背景,播放器空闲时会在背景顶部绘制。经过数小时的尝试和错误,我自己发现了这一点,但我很感谢您的评论,它稍微澄清了我的想法。非常感谢:)。