📄 animatedsprite.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
package com.golden.gamedev.object;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
// Referenced classes of package com.golden.gamedev.object:
// Sprite, Timer
public class AnimatedSprite extends Sprite
{
private transient BufferedImage images[];
private int imagePos;
private int startAnimationFrame;
private int finishAnimationFrame;
private boolean isAnimate;
private boolean isLoopAnim;
private Timer timer;
public AnimatedSprite(BufferedImage abufferedimage[], double d1, double d2)
{
super(d1, d2);
if(abufferedimage != null)
{
images = abufferedimage;
width = abufferedimage[0].getWidth();
height = abufferedimage[0].getHeight();
startAnimationFrame = 0;
finishAnimationFrame = abufferedimage.length - 1;
}
timer = new Timer(60);
}
public AnimatedSprite(BufferedImage abufferedimage[])
{
this(abufferedimage, 0.0D, 0.0D);
}
public AnimatedSprite(double d1, double d2)
{
this(null, d1, d2);
}
public AnimatedSprite()
{
this(0.0D, 0.0D);
}
public void setImages(BufferedImage abufferedimage[])
{
images = null;
imagePos = 0;
startAnimationFrame = 0;
if(abufferedimage == null || abufferedimage[0] == null)
{
width = height = finishAnimationFrame = 0;
return;
} else
{
images = abufferedimage;
width = abufferedimage[0].getWidth();
height = abufferedimage[0].getHeight();
finishAnimationFrame = abufferedimage.length - 1;
return;
}
}
public void setImage(BufferedImage bufferedimage)
{
throw new RuntimeException("Animated Sprite need an array of images, use setImages(BufferedImage[]) instead!");
}
public BufferedImage[] getImages()
{
return images;
}
public BufferedImage getImage(int i)
{
return images[i];
}
public BufferedImage getImage()
{
return images[imagePos];
}
public void setFrame(int i)
{
imagePos = i + startAnimationFrame;
if(imagePos > finishAnimationFrame)
{
imagePos = startAnimationFrame;
return;
}
if(imagePos < startAnimationFrame)
imagePos = finishAnimationFrame;
}
public int getFrame()
{
return imagePos;
}
public void setAnimationFrame(int start, int finish)
{
if(start != startAnimationFrame || finish != finishAnimationFrame)
{
startAnimationFrame = start;
finishAnimationFrame = finish;
imagePos = startAnimationFrame;
}
}
public int getStartAnimationFrame()
{
return startAnimationFrame;
}
public int getFinishAnimationFrame()
{
return finishAnimationFrame;
}
public void update(long elapsedTime)
{
super.update(elapsedTime);
if(isAnimate && timer.action(elapsedTime))
updateAnimation();
}
protected void updateAnimation()
{
if(++imagePos > finishAnimationFrame)
{
imagePos = startAnimationFrame;
if(!isLoopAnim)
isAnimate = false;
}
}
public void render(Graphics2D graphics2d, int x, int y)
{
graphics2d.drawImage(images[imagePos], x, y, null);
}
public boolean isAnimate()
{
return isAnimate;
}
public void setAnimate(boolean flag)
{
isAnimate = flag;
}
public boolean isLoopAnim()
{
return isLoopAnim;
}
public void setLoopAnim(boolean flag)
{
isLoopAnim = flag;
}
public void setAnimationTimer(Timer timer)
{
this.timer = timer;
}
public Timer getAnimationTimer()
{
return timer;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -