⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 animationstrip.java

📁 这是自己设计的一款java泡泡游戏。 这是自己设计的一款java泡泡游戏。这是自己设计的一款java泡泡游戏
💻 JAVA
字号:
package like.graphics;

import java.awt.*;
import java.awt.image.*;
import java.util.*;

/********************************************************
*定义一个动态链表,容纳用于Animator对象显示动画用的图象帧
*创建一个AnimationStrip必须调用setPE()和setAnimator()函数
*********************************************************/
public class AnimationStrip
{
	public static ImageObserver observer;
	
	//图象链表以及链表的大小
	protected LinkedList frames;
	protected int numFrames;//为0时不可用啊!!!!!!!!
		
	//冲突检测用大小
	protected int posWidth;
	protected int posHeight;
	
	//绘画偏差
	private int excursionx;
	private int excursiony;
	
	//负责放映帧的Animaor
	protected int AnimatorMode;
	
	//创建一个空的AnimationStrip对象
	public AnimationStrip()
	{
		frames   = null;
		numFrames   = 0;
	}
	//设置图象的2d世界里的长和宽(不是图片的长宽)和相对图片的偏差,实际画的时候加上偏差
	public void setPE(int posWidth,int posHeight,int excursionx,int excursiony)
	{
		this.posWidth	= posWidth;
		this.posHeight	= posHeight;
		this.excursionx = excursionx;
		this.excursiony = excursiony;
	}
	
	public Animator createNewAnimator()
	{
		Animator animator = null;
		switch(this.AnimatorMode)
		{
			case Animator.AnimatorMode_Indexed:
				animator = new Animator.Indexed();
				break;
			case Animator.AnimatorMode_Looped :
				animator = new Animator.Looped();
				break;
			case Animator.AnimatorMode_OneShot:
				animator = new Animator.OneShot();
				break;
			case Animator.AnimatorMode_Randoms:
				animator = new Animator.Randoms();
				break;
			case Animator.AnimatorMode_Single :
				animator = new Animator.Single();
				break;
		}
		animator.frames	  = frames;
		return animator;
	}
	
	public void setAnimatorMode(int mode)
	{
		this.AnimatorMode = mode;
	}	 
	
	//把图象帧添加到链表中
	public void addFrame(Image image)
	{
		if(frames == null)
		{
			frames = new LinkedList();
			numFrames = 1;
		}
		
		frames.add(image);
		numFrames++;
	}

	//返回冲突检测用大小
	public int getPosWidth()
	{
		return this.posWidth;
	}
	public int getPosHeight()
	{
		return this.posHeight;
	}
	
	//返回偏差
	public int getExcrusionx()
	{
		return this.excursionx;
	}
	public int getExcrusiony()
	{
		return this.excursiony;
	}
	
	//返回帧数
	public int getNumFrames()
	{
		return numFrames;
	}
	
	//返回Animator的当前帧
	public Image getCurrFrame(Animator animator)
	{
		if(frames != null)
		{
			return animator.getCurrFrame();
		}
		return null;
	}
	
	//返回指定下标对应的帧
	public Image getFrame(int index)
	{
		if(frames != null && index>=0 && index<numFrames)
		{
			return (Image)frames.get(index);
		}
		return null;
	}
	//返回Animator的下一帧动画
	public Image getNextFrame(Animator animator)
	{
		if(frames != null)
		{
			animator.nextFrame();
			return animator.getCurrFrame();
		}
		return null;
	}
	
	//返回第一帧动画
	public Image getFirsrFrame()
	{
		if(frames != null)
		{
			return (Image)frames.getFirst();
		}
		return null;
	}
	
	//返回最后一帧动画
	public Image getLastFrame()
	{
		if(frames != null)
		{
			return (Image)frames.getLast();
		}
		return null;
	}
	
	//重新设置Animator内部的动画序列
	public void reset(Animator animator)
	{
		if(animator != null)
		{
			animator.reset();
		}
	}
	
	//返回动画帧的宽度
	public int getFrameWidth()
	{
		if(frames != null&& !frames.isEmpty())
		{
			return this.getFirsrFrame().getWidth(this.observer);
		}
		return 0;
	}
	
	//返回动画帧的高度
	public int getFrameHeight()
	{
		if(frames != null&& !frames.isEmpty())
		{
			return this.getFirsrFrame().getHeight(this.observer);
		}
		return 0;
	}
}//AnimatorStrip

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -