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

📄 secondyear.java

📁 用java开发的一段小动画片 包含技术文档和用户手册
💻 JAVA
字号:
////////////////////////////////////////////////////////////////////////////////
//
// SecondYear.java
//
//    开发者:刘嘉祥
//
////////////////////////////////////////////////////////////////////////////////
//
// 功能:
//     实现剧情中第二年的动画绘制。
//
////////////////////////////////////////////////////////////////////////////////

import java.awt.Graphics2D;
import java.awt.Color;
import java.awt.Polygon;
import java.awt.geom.Ellipse2D;


class SecondYear
{
    static void drawSecondYear(Graphics2D g2d,int a_frame)
    {
        int i = (a_frame%20==0) ? 20 : (a_frame%20);
        
        Draw.drawLine(g2d,0,380,600,380);//地板
        
        
        //配角
        
        //拿武器
        if(a_frame<=10)
        {
        	  Draw.drawCircle(g2d,200,255,25,25);//头
    	  	  Draw.drawLine(g2d,200,320,200,280);//身体
    	  	  Draw.drawLine(g2d,200,320,220,380);
    	  	  Draw.drawLine(g2d,200,320,180,380);
    	  	  Draw.drawLine(g2d,200,285,180,305);
    	  	  Draw.drawLine(g2d,180,305,200,315);
    	  	  Draw.drawLine(g2d,200,285,225,290);
    	  	  Draw.drawLine(g2d,225,290,200,315);
    	  	  
        }
        //持双节棍
        else if(a_frame<=20)
        {
        	  if(a_frame==11)
        	      Animation.haSound.play();
        	  Draw.drawCircle(g2d,200,255,25,25);//头
    	  	  Draw.drawLine(g2d,200,320,200,280);//身体
    	  	  Draw.drawLine(g2d,200,320,220,380);
    	  	  Draw.drawLine(g2d,200,320,180,380);
    	  	  Draw.drawLine(g2d,200,285,180,305);
    	  	  Draw.drawLine(g2d,180,305,200,315);
    	  	  Draw.drawLine(g2d,200,285,225,295);
    	  	  Draw.drawLine(g2d,225,295,250,290);
    	  	  Color c0 = g2d.getColor();
    	  	  Color c = new Color(146,91,41);
    	  	  g2d.setColor(c);
    	  	  Draw.drawLine(g2d,262,265,232,315);
    	  	  Draw.drawLine(g2d,262,275,262,335);
    	  	  g2d.setColor(c0);
    	  	  g2d.draw(new Ellipse2D.Double(260,265,4,7));
    	  	  g2d.draw(new Ellipse2D.Double(260,268,4,7));
    	  	  
        }
        //挥舞双节棍
        else if(a_frame<=80)
        {
        	  if(i%5==1)
        	      Animation.rotateSound.play();
        	  Draw.drawCircle(g2d,200,255,25,25);//头
    	  	  Draw.drawLine(g2d,200,320,200,280);//身体
    	  	  Draw.drawLine(g2d,200,320,220,380);
    	  	  Draw.drawLine(g2d,200,320,180,380);
    	  	  Draw.drawLine(g2d,200,285,180,305);
    	  	  Draw.drawLine(g2d,180,305,200,315);
    	  	  Draw.drawLine(g2d,200,285,225,295);
    	  	  Draw.drawLine(g2d,225,295,250-i%5,290+i%5);
    	  	  Color c0 = g2d.getColor();
    	  	  Color c = new Color(146,91,41);
    	  	  g2d.setColor(c);
    	  	  Draw.drawLine(g2d,262-i%5,265+i%5,232-i%5,315+i%5);
    	  	  g2d.translate(262-i%5,265+i%5);
    	  	  g2d.rotate(-5*Math.PI/6);
    	  	  Draw.drawLine(g2d,(int)(10*Math.cos(-i*2*Math.PI/5)),
    	  	                    (int)(5*Math.sin(-i*2*Math.PI/5)),
    	  	                    (int)(70*Math.cos(-i*2*Math.PI/5)),
    	  	                    (int)(30*Math.sin(-i*2*Math.PI/5)));
    	  	  g2d.setColor(c0);
    	  	  g2d.drawLine(0,0,(int)(10*Math.cos(-i*2*Math.PI/5)),
    	  	                   (int)(5*Math.sin(-i*2*Math.PI/5)));
    	  	  g2d.rotate(5*Math.PI/6);
    	  	  g2d.translate(-262+i%5,-265-i%5);
    	  	  
        }
        //双节棍挑逗(马步)
        else if(a_frame<=120)
        {
        	  Color c = new Color(146,91,41);
        	  Color c0 = g2d.getColor();
        	  
        	  if(a_frame==81)
        	      Animation.haSound.play();
        	  Draw.drawCircle(g2d,200,280,25,25);//头
    	  	  Draw.drawLine(g2d,200,310,190,335);//后大臂
    	  	  Draw.drawLine(g2d,190,335,230,340);//后小臂
    	  	  g2d.setColor(c);
    	  	  Draw.drawLine(g2d,222,318,162,315);//横棍
    	  	  Draw.drawLine(g2d,217,375,232,320);//竖棍
    	  	  g2d.setColor(c0);
    	  	  Draw.drawLine(g2d,200,345,200,305);//身体
    	  	  Draw.drawLine(g2d,200,345,170,357);//腿
    	  	  Draw.drawLine(g2d,170,357,170,380);
    	  	  Draw.drawLine(g2d,200,345,250,380);
    	  	  Draw.drawLine(g2d,200,310,225,320);//前大臂
    	  	  
    	  	  if((i==17)||(i==19))
    	  	  {
    	  	  	  Animation.legSound.play();
    	  	  	  Draw.drawLine(g2d,225,320,255,316);
    	  	  	  Draw.drawLine(g2d,255,316,260,310);
    	  	  }
    	  	  else
    	  	      Draw.drawLine(g2d,225,320,260,314);//前小臂
    	  	      
        }
        //双节棍马步(台词)
        else if(a_frame<=220)
        {
        	  Color c = new Color(146,91,41);
        	  Color c0 = g2d.getColor();
        	  
        	  Draw.drawCircle(g2d,200,280,25,25);//头
    	  	  Draw.drawLine(g2d,200,310,190,335);//后大臂
    	  	  Draw.drawLine(g2d,190,335,230,340);//后小臂
    	  	  g2d.setColor(c);
    	  	  Draw.drawLine(g2d,222,318,162,315);//横棍
    	  	  Draw.drawLine(g2d,217,375,232,320);//竖棍
    	  	  g2d.setColor(c0);
    	  	  Draw.drawLine(g2d,200,345,200,305);//身体
    	  	  Draw.drawLine(g2d,200,345,170,357);//腿
    	  	  Draw.drawLine(g2d,170,357,170,380);
    	  	  Draw.drawLine(g2d,200,345,250,380);
    	  	  Draw.drawLine(g2d,200,310,225,320);//前大臂
    	  	  Draw.drawLine(g2d,225,320,260,314);//前小臂
    	  	  if(a_frame<=180)
    	  	      Subtitle.drawLaoDa(g2d,(a_frame-120));
    	  	      
        }
        //惊讶
        else if(a_frame<=240)
        {
        	  if(a_frame==221)
        	      Animation.surpriseSound.play();
        	  Draw.drawCircle(g2d,200,250,25,25);//头
        	  Draw.drawLine(g2d,200,315,200,275);//身体
        	  Draw.drawLine(g2d,200,315,230,325);//腿
        	  Draw.drawLine(g2d,230,325,220,350);
        	  Draw.drawLine(g2d,200,315,170,325);
        	  Draw.drawLine(g2d,170,325,175,355);
        	  Draw.drawLine(g2d,200,280,180,290);//手
        	  Draw.drawLine(g2d,180,290,155,285);
        	  Draw.drawLine(g2d,200,280,215,290);
        	  Draw.drawLine(g2d,215,290,185,300);
        	  g2d.translate(200,225);
        	  g2d.rotate(Math.PI/6);
        	  Draw.drawCircle(g2d,40,10,20,10);
        	  Draw.drawCircle(g2d,56,10,3,3);
        	  g2d.rotate(-Math.PI/6);
        	  g2d.translate(-200,-225);
        	  
        }
        //逃跑
        else if(a_frame<=280)
        {
        	  Color c = g2d.getColor();
        	  
        	  if(a_frame==241)
        	      Animation.runSound.play();
        	  Draw.drawCircle(g2d,200,315,22,22);
        	  Draw.drawCircle(g2d,181,282,22,22);
        	  Draw.drawCircle(g2d,181,348,22,22);
        	  g2d.setColor(Color.white);
        	  g2d.fillRect(150,278,47,74);
        	  g2d.setColor(c);
        	  Draw.drawLine(g2d,100,295,160,295);
        	  Draw.drawLine(g2d,50,310,180,310);
        	  Draw.drawLine(g2d,70,335,170,335);
        	  
        }
        
        
        //主角
        
        //站立
        if(a_frame<=180)
        {
        	  Draw.fillCircle(g2d,500,255,25,25);//头
    	  	  Draw.drawLine(g2d,500,320,500,280);//身体
    	  	  Draw.drawLine(g2d,500,320,480,380);
    	  	  Draw.drawLine(g2d,500,320,520,380);
    	  	  Draw.drawLine(g2d,500,285,520,325);
    	  	  Draw.drawLine(g2d,500,285,480,325);
        }
        //挥斧+无奈
        else
        {
        	  int[] x = {-130,-137,-83,-90};
        	  int[] y = {13,41,41,13};
        	  Color c = g2d.getColor();
        	  
        	  if(a_frame<=280)
        	      Draw.fillCircle(g2d,500,255,25,25);//挥斧时的头
    	  	  Draw.drawLine(g2d,500,320,500,280);//身体
    	  	  Draw.drawLine(g2d,500,320,480,380);//腿
    	  	  Draw.drawLine(g2d,500,320,520,380);
    	  	  g2d.translate(500,285);
    	  	  if(a_frame==181)
    	  	      Animation.dingdongSound.play();
    	  	  if(a_frame==189)
    	  	      Animation.heiJumpSound.play();
    	  	  if(a_frame==192)
    	  	      Animation.axeSound.play();
    	  	  
    	  	  if(a_frame<=200)
    	  	  {
    	  	  	  if((i>=1)&&(i<=10))
    	  	          g2d.rotate(5*Math.PI/6);
    	  	      else if((i>=11)&&(i<=12))
    	  	          g2d.rotate(5*Math.PI/6-(i-10)*Math.PI/2);
    	  	      else
    	  	          g2d.rotate(-Math.PI/6);
    	  	          
    	  	  }
    	  	  else
    	  	      g2d.rotate(-Math.PI/6);
    	  	      
    	  	  if(a_frame<=280)//旋转时的双手
    	  	  {
    	  	  	  Draw.drawLine(g2d,0,0,-50,10);
    	  	      Draw.drawLine(g2d,0,0,-20,20);
    	  	      Draw.drawLine(g2d,-20,20,-45,15);
    	  	  }
    	  	  
    	  	  g2d.setColor(Color.gray);
    	  	  g2d.fill(new Polygon(x,y,4));
    	  	  g2d.setColor(c);
    	  	  Draw.drawLine(g2d,-30,13,-130,13);
    	  	  Draw.drawLine(g2d,-130,13,-140,53);
    	  	  Draw.drawLine(g2d,-140,53,-80,53);
    	  	  Draw.drawLine(g2d,-80,53,-90,13);
    	  	  
    	  	  if(a_frame<=200)
    	  	  {
    	  	      if((i>=1)&&(i<=10))
    	  	          g2d.rotate(-5*Math.PI/6);
    	  	      else if((i>=11)&&(i<=12))
    	  	          g2d.rotate(-5*Math.PI/6+(i-10)*Math.PI/2);
    	  	      else
    	  	          g2d.rotate(Math.PI/6);
    	  	          
    	  	  }
    	  	  else
    	  	      g2d.rotate(Math.PI/6);
    	  	      
    	  	  g2d.translate(-500,-285);
    	  	  g2d.setColor(Color.white);
    	  	  g2d.fillRect(0,380,600,380);
    	  	  g2d.setColor(c);
    	  	  Draw.drawLine(g2d,0,380,600,380);//地板
    	  	  
    	  	  //地裂
    	  	  if(a_frame==211)
    	  	      Animation.groundSound.play();
    	  	  if(a_frame>210)
    	  	  {
    	  	  	  g2d.drawLine(400,380,395,386);//第一条缝
    	  	      g2d.drawLine(395,386,388,389);
    	  	      g2d.drawLine(388,389,386,396);
    	  	      g2d.drawLine(395,386,403,396);
    	  	      g2d.drawLine(405,380,405,385);//第二条缝
    	  	      g2d.drawLine(405,385,402,388);
    	  	      g2d.drawLine(405,385,410,390);
    	  	      g2d.drawLine(410,390,410,393);
    	  	      g2d.drawLine(413,380,411,384);//第三条缝
    	  	      g2d.drawLine(418,380,416,385);//第四条缝
    	  	      g2d.drawLine(420,380,421,388);//第五条缝
    	  	      g2d.drawLine(421,388,417,391);
    	  	      g2d.drawLine(417,391,415,389);
    	  	      g2d.drawLine(417,391,416,394);
    	  	      g2d.drawLine(421,388,425,396);
    	  	      g2d.drawLine(423,392,421,395);
    	  	      g2d.drawLine(430,380,425,385);//第六条缝
    	  	      g2d.drawLine(425,385,426,389);
    	  	      g2d.drawLine(430,380,433,386);
    	  	      g2d.drawLine(440,380,438,388);//第七条缝
    	  	      g2d.drawLine(438,388,433,391);
    	  	      g2d.drawLine(433,391,436,396);
    	  	      g2d.drawLine(438,388,441,393);
    	  	      g2d.drawLine(441,393,441,398);
    	  	      g2d.drawLine(443,380,448,388);//第八条缝
    	  	      g2d.drawLine(448,388,454,385);
    	  	      g2d.drawLine(448,388,450,394);
    	  	      
    	  	  }
    	  	  if(a_frame>280)//无奈时的头和双手
    	  	  {
    	  	  	  if(a_frame==281)
    	  	  	      Animation.dingdongSound.play();
    	  	  	  Draw.fillCircle(g2d,500,265,25,25);
    	  	  	  Draw.drawLine(g2d,500,285,515,305);
    	  	  	  Draw.drawLine(g2d,515,305,535,290);
    	  	  	  Draw.drawLine(g2d,535,290,540,295);
    	  	  	  Draw.drawLine(g2d,500,285,480,305);
    	  	  	  Draw.drawLine(g2d,480,305,460,295);
    	  	  	  Draw.drawLine(g2d,460,295,455,300);
    	  	  	  
    	  	  }
    	  	  
        }
        
        
        //结束
        if(a_frame>300)
            Draw.cleanScreen(g2d,(a_frame-300));
            
    }//方法drawSecondYear结束
    
}//类SecondYear结束

⌨️ 快捷键说明

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