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

📄 animation.java

📁 用java开发的一段小动画片 包含技术文档和用户手册
💻 JAVA
字号:
////////////////////////////////////////////////////////////////////////////////
//
// Animation.java
// 
//    开发者:刘嘉祥
//
////////////////////////////////////////////////////////////////////////////////
//
// 功能:
//     实现动画的播放。
// 
////////////////////////////////////////////////////////////////////////////////       

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import javax.swing.JApplet;
import javax.swing.Timer;
import javax.swing.ImageIcon;
import java.awt.image.BufferedImage;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.applet.AudioClip;
import javax.imageio.ImageIO;
import java.net.URL;


public class Animation extends JApplet implements ActionListener
{
    private int a_frame = 0;  //当前帧号
    Timer a_timer;  //计时器
    boolean a_ready = true;  //缓存帧准备状态,true为准备好
    BufferedImage a_image =
        new BufferedImage(600,400,BufferedImage.TYPE_INT_RGB);//帧缓存
    static Image gunImage;
    static AudioClip gunSound,beginSound,crashSound,legSound,wangSound,haSound,
	                   appearSound,knockSound,circleSound,heiSound,rotateSound,
	                   hanSound,heiJumpSound,stickHitSound,hitSound,fadeInSound,
	                   oneYearSound,docSound,dingdongSound,axeSound,groundSound,
	                   surpriseSound,runSound,baJianSound,haJumpSound,piJianSound,
	                   ciJianSound,biSound,typeSound,guangHuanSound,angelSound,
	                   gunRotateSound,moveSound,kickSound,punchSound,firstYearSound,
	                   secondYearSound,thirdYearSound,forthYearSound,endSound;
	  
	  
	  public void init()
	  {
	  	  int delay = 50;
	  	  try
        {
        	  gunImage = getImage(getCodeBase(),"沙漠之虫.gif");
        	  ImageIcon ic = new ImageIcon("沙漠之虫.gif");
        	  gunImage = ic.getImage();
        }
        catch(Exception e)
        {
        	  System.err.println("No");
        	  e.printStackTrace();
        }
        URL path = getDocumentBase();
	  	  gunSound = getAudioClip(path,"gun.wav");
	  	  beginSound = getAudioClip(path,"begin.wav");
	  	  crashSound = getAudioClip(path,"crash.wav");
	  	  legSound = getAudioClip(path,"leg.wav");
	  	  wangSound = getAudioClip(path,"wang.wav");
	  	  haSound = getAudioClip(path,"ha.wav");
	  	  appearSound = getAudioClip(path,"appear.wav");
	  	  knockSound = getAudioClip(path,"knock.wav");
	  	  firstYearSound = getAudioClip(path,"firstYear.wav");
	  	  circleSound = getAudioClip(path,"circle.wav");
	  	  heiSound = getAudioClip(path,"hei.wav");
	  	  rotateSound = getAudioClip(path,"rotate.wav");
	  	  hanSound = getAudioClip(path,"han.wav");
	  	  heiJumpSound = getAudioClip(path,"heiJump.wav");
	  	  stickHitSound = getAudioClip(path,"stickHit.wav");
	  	  hitSound = getAudioClip(path,"hit.wav");
	  	  fadeInSound = getAudioClip(path,"fadeIn.wav");
	  	  oneYearSound = getAudioClip(path,"oneYear.wav");
	  	  docSound = getAudioClip(path,"doc.wav");
	  	  secondYearSound = getAudioClip(path,"secondYear.wav");
	  	  dingdongSound = getAudioClip(path,"dingdong.wav");
	  	  axeSound = getAudioClip(path,"axe.wav");
	  	  groundSound = getAudioClip(path,"ground.wav");
	  	  surpriseSound = getAudioClip(path,"surprise.wav");
	  	  runSound = getAudioClip(path,"run.wav");
	  	  baJianSound = getAudioClip(path,"baJian.wav");
	  	  haJumpSound = getAudioClip(path,"haJump.wav");
	  	  piJianSound = getAudioClip(path,"piJian.wav");
	  	  ciJianSound = getAudioClip(path,"ciJian.wav");
	  	  thirdYearSound = getAudioClip(path,"thirdYear.wav");
	  	  biSound = getAudioClip(path,"bi.wav");
	  	  typeSound = getAudioClip(path,"type.wav");
	  	  guangHuanSound = getAudioClip(path,"guangHuan.wav");
	  	  angelSound = getAudioClip(path,"angel.wav");
	  	  gunRotateSound = getAudioClip(path,"gunRotate.wav");
	  	  forthYearSound = getAudioClip(path,"forthYear.wav");
	  	  moveSound = getAudioClip(path,"move.wav");
	  	  kickSound = getAudioClip(path,"kick.wav");
	  	  punchSound = getAudioClip(path,"punch.wav");
	  	  endSound = getAudioClip(path,"end.wav");
	  	  a_timer = new Timer(delay,this);
	  	  a_timer.setInitialDelay(0);
	  	  a_timer.setCoalesce(true);
	  	  a_timer.start();
	  }//方法init结束
	  
	  
	  public void actionPerformed(ActionEvent e)
	  {
	  	  a_frame++;
	  	  repaint();
	  }//方法actionPerformed结束
	  
	  
	  //帧缓存
	  public void bufferedDraw()
	  {
	  	  if(!a_ready) return;
	  	  
	  	  //开始准备帧缓存
	  	  a_ready = false;
	  	  Graphics2D g2d = a_image.createGraphics();
	  	  
	  	  //清除背景
	  	  g2d.setColor(Color.white);
	  	  g2d.fill(new Rectangle(0,0,600,400));
	  	  g2d.setColor(Color.black);
	  	  
	  	  //动画绘制
	  	  if((a_frame>0)&&(a_frame<=480))
	  	      Opening.drawOpening(g2d,a_frame);
	  	  else if(a_frame<=540)
	  	      Appearance.drawAppearance(g2d,(a_frame-480));
	  	  else if(a_frame<=1040)
	  	      FirstYear.drawFirstYear(g2d,(a_frame-540));
	  	  else if(a_frame<=1140)
	  	      Subtitle.drawOneYear(g2d,(a_frame-1040));
	  	  else if(a_frame<=1200)
	  	      Appearance.drawAppearance(g2d,(a_frame-1140));
	  	  else if(a_frame<=1540)
	  	      SecondYear.drawSecondYear(g2d,(a_frame-1200));
	  	  else if(a_frame<=1640)
	  	      Subtitle.drawOneYear(g2d,(a_frame-1540));
	  	  else if(a_frame<=1700)
	  	      Appearance.drawAppearance(g2d,(a_frame-1640));
	  	  else if(a_frame<=2660)
	  	      ThirdYear.drawThirdYear(g2d,(a_frame-1700));
	  	  else if(a_frame<=2760)
	  	      Subtitle.drawOneYear(g2d,(a_frame-2660));
	  	  else if(a_frame<=2820)
	  	      Appearance.drawAppearance(g2d,(a_frame-2760));
	  	  else if(a_frame<=3260)
	  	      ForthYear.drawForthYear(g2d,(a_frame-2820));
	  	  else if(a_frame<=3360)
	  	      Subtitle.drawPower(g2d,(a_frame-3260));
	  	  else
	  	      Ending.drawEnding(g2d,(a_frame-3360));
	  	  
	  	  a_ready = true;  //帧缓存已准备好
	  }//方法bufferedDraw结束
	  
	  
	  public void paint(Graphics g)
	  {
	  	  if(a_ready) g.drawImage(a_image,0,0,600,400,this);
	  	  bufferedDraw();
	  }//方法paint结束

}//类Animation结束

⌨️ 快捷键说明

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