我正在尝试在我正在制作的一次性 pacman 游戏中展示 pacman 角色著名的张嘴/闭合动画,以自学游戏编程。
我正在做的是绘制张开的嘴巴图像,然后在完全相同的(x/y)位置重新绘制闭合的嘴巴图像。但这不起作用,我只是一直看到闭口动画。
如果我把它放在一个循环中,系统就会冻结,你会看到张开嘴的图像在闪烁,但你看不到被替换的图像。
我已经测试并确保两个图像都按预期正确加载。
这是我的startAnim()
函数,当您双击小程序时调用它:
public void beginGame() //Called from engine.java
{
isRunning=true;
repaint();
pacman.startAnim();
}
public void startAnim() //In different class, pacman.java
{
Image orig;
while (engine.isRunning)
{
orig=this.getCurrentImg();
draw(engine.getGraphics());
this.setCurrImg(currImg2);
this.draw(engine.getGraphics());
this.setCurrImg(orig);
this.draw(engine.getGraphics());
try
{
Thread.sleep(100);
}
catch (InterruptedException e) {}
}
}
public void draw(Graphics g) //Called from engine.paint()
{
g.drawImage(getCurrentImg(), getX(),
getY(), engine);
}