Java 流畅的动画-每帧必须有一个持续时间
我正在尝试用Slick制作一个游戏,在开始之前,我想测试一下我将使用的直升机动画。它只是打开,然后立即关闭,出现以下错误: 线程“main”java.lang.RuntimeException中的异常:每个帧必须有一个持续时间 在org.newdawn.slick.Animation上 在javagame.Menu.init(Menu.java:22) 在javagame.Game.initStatesList(Game.java:19) 位于org.newdawn.slick.state.StateBasedGame.init(StateBasedGame.java:170) 位于org.newdawn.slick.AppGameContainer.setup(AppGameContainer.java:433) 位于org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:357) 在javagame.Game.main(Game.java:29) 这是我的密码:Java 流畅的动画-每帧必须有一个持续时间,java,animation,frame,sprite,slick2d,Java,Animation,Frame,Sprite,Slick2d,我正在尝试用Slick制作一个游戏,在开始之前,我想测试一下我将使用的直升机动画。它只是打开,然后立即关闭,出现以下错误: 线程“main”java.lang.RuntimeException中的异常:每个帧必须有一个持续时间 在org.newdawn.slick.Animation上 在javagame.Menu.init(Menu.java:22) 在javagame.Game.initStatesList(Game.java:19) 位于org.newdawn.slick.state.St
package javagame;
import org.newdawn.slick.*;
import org.newdawn.slick.state.*;
import org.newdawn.slick.tests.AnimationTest;
public class Menu extends BasicGameState {
Animation sprite, fly;
public Menu(int state){
}
public void init(GameContainer gc, StateBasedGame sbg) throws SlickException{
Image [] flyanimation = {new Image("res/copter1.png"), new Image("res/copter2.png"),
new Image("res/copter3.png"), new Image("res/copter4.png")};
int [] duration = {300, 300};
fly = new Animation(flyanimation, duration, false);
sprite = fly;
}
public void render(GameContainer gc, StateBasedGame sbg, Graphics g)throws SlickException{
sprite.draw(150, 150);
}
public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException{
Input input = gc.getInput();
if(input.isKeyDown(Input.KEY_SPACE)){
sprite = fly;
sprite.update(delta);
}
}
public int getID(){
return 0;
}
}
谢谢你的帮助!如果我完全错了,我很抱歉。我找不到像样的教程来救我的命 问题在于,您正在传递动画构造函数4个图像和2个持续时间值,请尝试以下操作:
public void init(GameContainer gc, StateBasedGame sbg) throws SlickException{
Image [] flyanimation = {new Image("res/copter1.png"), new Image("res/copter2.png"),
new Image("res/copter3.png"), new Image("res/copter4.png")};
int [] duration = {300, 300, 300, 300};
fly = new Animation(flyanimation, duration, false);
sprite = fly;
}