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

📄 forthyear.java

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

import java.awt.Graphics2D;
import java.awt.Color;


class ForthYear
{
    static void drawForthYear(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<=283)
        {
        	  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,300);
    	  	  //耍枪
    	  	  if((a_frame>20)&&(a_frame<=60))
    	  	  {
    	  	  	  if(i%5==1)
    	  	  	      Animation.gunRotateSound.play();
    	  	  	  Draw.drawLine(g2d,225,300,255+i%5,295-i%5);//手
    	  	  	  g2d.translate(255+i%5,295-i%5);
    	  	  	  g2d.rotate(-i*2*Math.PI/5);
    	  	  	  Draw.drawLine(g2d,12,-6,-4,-6);
    	  	  	  Draw.drawLine(g2d,-4,-6,-6,4);
    	  	  	  g2d.rotate(i*2*Math.PI/5);
    	  	  	  g2d.translate(-255-i%5,-295+i%5);
    	  	  }
    	  	  //持枪
    	  	  else
    	  	  {
    	  	      if(a_frame==11)
    	  	          Animation.haSound.play();
    	  	      Draw.drawLine(g2d,225,300,255,295);//手
    	  	      Draw.drawLine(g2d,267,289,251,289);//枪
    	  	      Draw.drawLine(g2d,251,289,249,299);
    	  	  }
    	  	  //台词
    	  	  if((a_frame>80)&&(a_frame<=140))
    	  	      Subtitle.drawBuShiDuiShou(g2d,(a_frame-80));
    	  	  //疑问
    	  	  if((a_frame>200)&&(a_frame<=240))
    	  	      Subtitle.drawQuestionMark(g2d,(a_frame-200));
    	  	  
        }
        
        //摔
        else if(a_frame<=295)
        {
        	  int j = a_frame-283;
        	  
        	  Draw.drawLine(g2d,210+j*10/12,270+j*3/12,235+j*10/12,275+j*3/12);//左手
    	  	  Draw.drawLine(g2d,235+j*10/12,275+j*3/12,260+j*10/12,270+j*3/12);
        	  Draw.drawLine(g2d,205,305-j*2/12,210+j*15/12,265+j*3/12);//身体
    	  	  Draw.drawCircle(g2d,215+j*20/12,240+j*3/12,25,25);//头
    	  	  Draw.drawLine(g2d,205,305-j*2/12,210+j*5/12,335-j*7/12);//腿
    	  	  Draw.drawLine(g2d,210+j*5/12,335-j*7/12,205-j*10/12,365-j*7/12);
    	  	  Draw.drawLine(g2d,205,305-j*2/12,190-j*20/12,365-j*17/12);
    	  	  Draw.drawLine(g2d,210+j*10/12,270+j*3/12,190+j*10/12,285+j*8/12);//右手
    	  	  Draw.drawLine(g2d,190+j*10/12,285+j*8/12,195+j*35/12,310-j*7/12);	  
    	  	  
        }
        else if(a_frame<=310)
        {
        	  int j = a_frame-295;
        	  
        	  Draw.drawLine(g2d,220+j*30/15,273+j*7/15,245+j*30/15,278+j*12/15);//左手 
    	  	  Draw.drawLine(g2d,245+j*30/15,278+j*12/15,270+j*30/15,273+j*12/15);
        	  Draw.drawLine(g2d,205+j*10/15,303-j*3/15,225+j*30/15,268+j*7/15);//身体
    	  	  Draw.drawCircle(g2d,235+j*35/15,243+j*12/15,25,25);//头
    	  	  Draw.drawLine(g2d,205+j*10/15,303-j*3/15,215-j*5/15,328-j*3/15);//腿
    	  	  Draw.drawLine(g2d,215-j*5/15,328-j*3/15,195-j*10/15,358-j*18/15);
    	  	  Draw.drawLine(g2d,205+j*10/15,303-j*3/15,170-j*5/15,348-j*33/15);
    	  	  Draw.drawLine(g2d,220+j*30/15,273+j*7/15,200+j*55/15,293+j*7/15);//右手
    	  	  Draw.drawLine(g2d,200+j*55/15,293+j*7/15,230+j*45/15,303+j*17/15);
    	  	  
        }
        else if(a_frame<=340)
        {
        	  int j = a_frame-310;
        	  
        	  Draw.drawLine(g2d,250+j*68/30,280+j*33/30,275+j*73/30,290+j*25/30);//左手
    	  	  Draw.drawLine(g2d,275+j*73/30,290+j*25/30,300+j*80/30,285+j*23/30);
        	  Draw.drawLine(g2d,215+j*70/30,300+j*20/30,255+j*70/30,275+j*35/30);//身体
    	  	  Draw.drawCircle(g2d,270+j*80/30,255+j*50/30,25,25);//头
    	  	  Draw.drawLine(g2d,215+j*70/30,300+j*20/30,210+j*50/30,325+j*10/30);//腿
    	  	  Draw.drawLine(g2d,210+j*50/30,325+j*10/30,185+j*45/30,340-j*5/30);
    	  	  Draw.drawLine(g2d,215+j*70/30,300+j*20/30,165+j*60/30,315);
    	  	  Draw.drawLine(g2d,250+j*68/30,280+j*33/30,255+j*75/30,300+j*33/30);//右手
    	  	  Draw.drawLine(g2d,255+j*75/30,300+j*33/30,275+j*80/30,320+j*25/30);
    	  	  
        }
        else if(a_frame<=370)
        {
        	  int j = a_frame-340;
        	  
        	  Draw.drawLine(g2d,318+j*57/30,313+j*52/30,348+j*52/30,315+j*59/30);//左手
    	  	  Draw.drawLine(g2d,348+j*52/30,315+j*59/30,380+j*55/30,308+j*66/30);
        	  Draw.drawLine(g2d,285+j*55/30,320+j*54/30,325+j*55/30,310+j*53/30);//身体
    	  	  Draw.drawCircle(g2d,350+j*55/30,305+j*50/30,25,25);//头
    	  	  Draw.drawLine(g2d,285+j*55/30,320+j*54/30,260+j*55/30,335+j*39/30);//腿
    	  	  Draw.drawLine(g2d,260+j*55/30,335+j*39/30,230+j*55/30,335+j*39/30);
    	  	  Draw.drawLine(g2d,285+j*55/30,320+j*54/30,225+j*55/30,315+j*59/30);
    	  	  Draw.drawLine(g2d,318+j*57/30,313+j*52/30,330+j*40/30,333+j*41/30);//右手
    	  	  Draw.drawLine(g2d,330+j*40/30,333+j*41/30,355+j*50/30,345+j*29/30);
    	  	  
        }
        else
        {
        	  Draw.drawLine(g2d,375,365,400,374);//左手
    	  	  Draw.drawLine(g2d,400,374,435,374);
        	  Draw.drawLine(g2d,340,374,380,363);//身体
    	  	  Draw.drawCircle(g2d,405,355,25,25);//头
    	  	  Draw.drawLine(g2d,340,374,315,374);//腿
    	  	  Draw.drawLine(g2d,315,374,285,374);
    	  	  Draw.drawLine(g2d,340,374,280,374);
    	  	  Draw.drawLine(g2d,375,365,370,374);//右手
    	  	  Draw.drawLine(g2d,370,374,405,374);
    	  	  
        }
        
        if((a_frame>283)&&(a_frame<=370)&&(a_frame%5==4))
            Animation.punchSound.play();
        
        
        //主角
        
        //站立
        if(a_frame<=140)
        {
        	  Draw.fillCircle(g2d,500,255,25,25);//头
    	  	  Draw.drawLine(g2d,500,320,500,280);//身体
    	  	  Draw.drawLine(g2d,500,320,490,350);//腿
    	  	  Draw.drawLine(g2d,490,350,480,380);
    	  	  Draw.drawLine(g2d,500,320,510,350);
    	  	  Draw.drawLine(g2d,510,350,520,380);
    	  	  Draw.drawLine(g2d,500,285,510,305);//手
    	  	  Draw.drawLine(g2d,510,305,520,325);
    	  	  Draw.drawLine(g2d,500,285,490,305);
    	  	  Draw.drawLine(g2d,490,305,480,325);
    	  	  
        }
        //无奈
        else if(a_frame<=180)
        {
        	  if(a_frame==141)
        	      Animation.dingdongSound.play();
        	  Draw.fillCircle(g2d,500,265,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,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);
    	  	  
        }
        //瞬移
        else if(a_frame<=190)
        {
        	  Color c = new Color(0,0,0,255-i*255/10);
        	  Color c0 = g2d.getColor();
        	  
        	  if(a_frame==181)
        	      Animation.moveSound.play();
        	  Draw.fillCircle(g2d,120,255,25,25);//头
    	  	  Draw.drawLine(g2d,120,320,120,280);//身体
    	  	  Draw.drawLine(g2d,120,320,110,350);//腿
    	  	  Draw.drawLine(g2d,110,350,100,380);
    	  	  Draw.drawLine(g2d,120,320,130,350);
    	  	  Draw.drawLine(g2d,130,350,140,380);
    	  	  Draw.drawLine(g2d,120,285,130,305);//手
    	  	  Draw.drawLine(g2d,130,305,140,325);
    	  	  Draw.drawLine(g2d,120,285,110,305);
    	  	  Draw.drawLine(g2d,110,305,100,325);
    	  	  //残影
    	  	  g2d.setColor(c);
    	  	  Draw.fillCircle(g2d,500,265,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,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);
    	  	  g2d.setColor(c0);
    	  	  
        }
        //站立(身后)
        else if(a_frame<=240)
        {
        	  Draw.fillCircle(g2d,120,255,25,25);//头
    	  	  Draw.drawLine(g2d,120,320,120,280);//身体
    	  	  Draw.drawLine(g2d,120,320,110,350);//腿
    	  	  Draw.drawLine(g2d,110,350,100,380);
    	  	  Draw.drawLine(g2d,120,320,130,350);
    	  	  Draw.drawLine(g2d,130,350,140,380);
    	  	  Draw.drawLine(g2d,120,285,130,305);//手
    	  	  Draw.drawLine(g2d,130,305,140,325);
    	  	  Draw.drawLine(g2d,120,285,110,305);
    	  	  Draw.drawLine(g2d,110,305,100,325);
        }
        //跳跃
        else if(a_frame<=270)
        {
        	  Color c0 = g2d.getColor();
        	  
        	  if(a_frame==241)
        	      Animation.fadeInSound.play();
        	      
        	  if(a_frame<=260)
        	  {
        	      for(int j=5 ; j>=0 ; j--)
        	      {
        	  	      Color c = new Color(0,0,0,(5-j)*255/5);
        	  	  
        	  	      g2d.setColor(c);
        	  	      Draw.fillCircle(g2d,120,195+j*5-i*j*5/20,25,25);//头
    	  	          Draw.drawLine(g2d,120,260+j*5-i*j*5/20,120,220+j*5-i*j*5/20);//身体
    	  	          Draw.drawLine(g2d,120,260+j*5-i*j*5/20,135,290+j*5-i*j*5/20);//腿
    	  	          Draw.drawLine(g2d,135,290+j*5-i*j*5/20,125,325+j*5-i*j*5/20);
    	  	          Draw.drawLine(g2d,120,260+j*5-i*j*5/20,150,270+j*5-i*j*5/20);
    	  	          Draw.drawLine(g2d,150,270+j*5-i*j*5/20,140,300+j*5-i*j*5/20);
    	  	          Draw.drawLine(g2d,120,225+j*5-i*j*5/20,95,225+j*5-i*j*5/20);//手
    	  	          Draw.drawLine(g2d,95,225+j*5-i*j*5/20,85,250+j*5-i*j*5/20);
    	  	          Draw.drawLine(g2d,120,225+j*5-i*j*5/20,135,220+j*5-i*j*5/20);
    	  	          Draw.drawLine(g2d,135,220+j*5-i*j*5/20,145,235+j*5-i*j*5/20);
    	  	          
        	      }
        	      g2d.setColor(c0);
        	  }
        	  else
        	  {
        	      Draw.fillCircle(g2d,120,195,25,25);//头
    	  	      Draw.drawLine(g2d,120,260,120,220);//身体
    	  	      Draw.drawLine(g2d,120,260,135,290);//腿
    	  	      Draw.drawLine(g2d,135,290,125,325);
    	  	      Draw.drawLine(g2d,120,260,150,270);
    	  	      Draw.drawLine(g2d,150,270,140,300);
    	  	      Draw.drawLine(g2d,120,225,95,225);//手
    	  	      Draw.drawLine(g2d,95,225,85,250);
    	  	      Draw.drawLine(g2d,120,225,135,220);
    	        	Draw.drawLine(g2d,135,220,145,235);
    	      }
    	      
        }
        
        //飞踢(带残影)
        if(a_frame>274)
        {
        	  Color c0 = g2d.getColor();
        	  Color c = new Color(0,0,0,51);
        	  int j = a_frame-274;
        	  
        	  g2d.setColor(c);
        	  
        	  //踢
        	  if(j<=40)
        	  {
        	  	  Draw.fillCircle(g2d,120,195,25,25);//头
    	  	      Draw.drawLine(g2d,120,260,120,220);//身体
    	  	      Draw.drawLine(g2d,120,225,95,225);//手
    	  	      Draw.drawLine(g2d,95,225,85,250);
    	  	      Draw.drawLine(g2d,120,225,135,220);
    	  	      Draw.drawLine(g2d,135,220,145,235);
    	  	      
    	  	      int k = (j<=20) ? j : (40-j);
    	  	      
    	  	      Draw.drawLine(g2d,120,260,150-k*15/20,270+k*20/20);//腿
    	  	      Draw.drawLine(g2d,150-k*15/20,270+k*20/20,140-k*15/20,300+k*25/20);
    	  	      g2d.translate(120,260);
    	  	      g2d.rotate(-k*Math.PI/40);
    	  	      Draw.drawLine(g2d,0,0,15,30);
    	  	      g2d.translate(15,30);
    	  	      g2d.rotate(-k*Math.PI/80);
    	  	      Draw.drawLine(g2d,0,0,-10,35);
    	  	      g2d.rotate(k*Math.PI/80);
    	  	      g2d.translate(-15,-30);
    	  	      g2d.rotate(k*Math.PI/40);

⌨️ 快捷键说明

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