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

📄 subtitle.java

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

import java.awt.Graphics2D;
import java.awt.Color;
import java.awt.Font;
import java.awt.Paint;
import java.awt.GradientPaint;


class Subtitle
{
    //“功夫之王”书写动画
    static void drawTitle_a(Graphics2D g2d,int a_frame)
    {
    	  int i = (a_frame%20==0)? 20 : a_frame%20;
    	  
    	  if(a_frame<=20)
    	      Draw.drawLine(g2d,40,50,40+i*60/20,50);
    	  else if(a_frame<=40)
        {
   	        Draw.drawLine(g2d,40,50,100,50);
    	      Draw.drawLine(g2d,70,50,70,50+i*60/20);
     	  }
     	  else if(a_frame<=60)
     	  {
	      	  Draw.drawLine(g2d,40,50,100,50);
        	  Draw.drawLine(g2d,70,50,70,110);
        	  Draw.drawLine(g2d,40,120,40+i*60/20,120-i*20/20);
     	  }
     	  else if(a_frame<=80)
     	  {
        	  Draw.drawLine(g2d,40,50,100,50);
        	  Draw.drawLine(g2d,70,50,70,110);
        	  Draw.drawLine(g2d,40,120,100,100);
        	  Draw.drawLine(g2d,110,55,110+i*60/20,55);
        }
        else if(a_frame<=100)
        {
    	   	  Draw.drawLine(g2d,40,50,100,50);
    	   	  Draw.drawLine(g2d,70,50,70,110);
    	   	  Draw.drawLine(g2d,40,120,100,100);
    	   	  Draw.drawLine(g2d,110,55,170,55);
    	   	  Draw.drawLine(g2d,170,55,170-i*5/20,55+i*80/20);
        }
     	  else if(a_frame<=120)
    	  {
    	   	  Draw.drawLine(g2d,40,50,100,50);
    	   	  Draw.drawLine(g2d,70,50,70,110);
         	  Draw.drawLine(g2d,40,120,100,100);
        	  Draw.drawLine(g2d,110,55,170,55);
    	   	  Draw.drawLine(g2d,170,55,165,135);
    	   	  Draw.drawLine(g2d,165,135,165-i*10/20,135-i*10/20);
        }
     	  else if(a_frame<=140)
        {
    	   	  Draw.drawLine(g2d,40,50,100,50);
    	   	  Draw.drawLine(g2d,70,50,70,110);
    	   	  Draw.drawLine(g2d,40,120,100,100);
    	   	  Draw.drawLine(g2d,110,55,170,55);
    	   	  Draw.drawLine(g2d,170,55,165,135);
        	  Draw.drawLine(g2d,165,135,155,125);
            Draw.drawLine(g2d,140,25,140-i*20/20,25+i*120/20);
     	  }
     	  else if(a_frame<=160)
     	  {
     	  	  Draw.drawLine(g2d,40,50,100,50);
     	  	  Draw.drawLine(g2d,70,50,70,110);
        	  Draw.drawLine(g2d,40,120,100,100);
        	  Draw.drawLine(g2d,110,55,170,55);
        	  Draw.drawLine(g2d,170,55,165,135);
        	  Draw.drawLine(g2d,165,135,155,125);
            Draw.drawLine(g2d,140,25,120,145);
        	  Draw.drawLine(g2d,75,235,75+i*60/20,235+i*10/20);
        }
        else if(a_frame<=180)
        {
        	  Draw.drawLine(g2d,40,50,100,50);
        	  Draw.drawLine(g2d,70,50,70,110);
        	  Draw.drawLine(g2d,40,120,100,100);
        	  Draw.drawLine(g2d,110,55,170,55);
        	  Draw.drawLine(g2d,170,55,165,135);
        	  Draw.drawLine(g2d,165,135,155,125);
            Draw.drawLine(g2d,140,25,120,145);
        	  Draw.drawLine(g2d,75,235,135,245);
        	  Draw.drawLine(g2d,45,285,45+i*120/20,285-i*10/20);
     	  }
     	  else if(a_frame<=200)
     	  {
        	  Draw.drawLine(g2d,40,50,100,50);
        	  Draw.drawLine(g2d,70,50,70,110);
        	  Draw.drawLine(g2d,40,120,100,100);
        	  Draw.drawLine(g2d,110,55,170,55);
        	  Draw.drawLine(g2d,170,55,165,135);
    	   	  Draw.drawLine(g2d,165,135,155,125);
    	      Draw.drawLine(g2d,140,25,120,145);
    	   	  Draw.drawLine(g2d,75,235,135,245);
    	      Draw.drawLine(g2d,45,285,165,275);
    	      Draw.drawLine(g2d,125,210,125-i*60/20,210+i*120/20);
        }
        else if(a_frame<=220)
     	  {
    	       Draw.drawLine(g2d,40,50,100,50);
    	   	  Draw.drawLine(g2d,70,50,70,110);
    	   	  Draw.drawLine(g2d,40,120,100,100);
    	   	  Draw.drawLine(g2d,110,55,170,55);
    	   	  Draw.drawLine(g2d,170,55,165,135);
    	   	  Draw.drawLine(g2d,165,135,155,125);
    	      Draw.drawLine(g2d,140,25,120,145);
    	  	  Draw.drawLine(g2d,75,235,135,245);
    	   	  Draw.drawLine(g2d,45,285,165,275);
    	   	  Draw.drawLine(g2d,125,210,65,330);
    	      Draw.drawLine(g2d,115,300,115+i*30/20,300+i*30/20);
    	  }
     	  else if(a_frame<=240)
     	  {
     	  	  Draw.drawLine(g2d,40,50,100,50);
     	  	  Draw.drawLine(g2d,70,50,70,110);
     	  	  Draw.drawLine(g2d,40,120,100,100);
        	  Draw.drawLine(g2d,110,55,170,55);
    	   	  Draw.drawLine(g2d,170,55,165,135);
    	   	  Draw.drawLine(g2d,165,135,155,125);
    	      Draw.drawLine(g2d,140,25,120,145);
    	      Draw.drawLine(g2d,75,235,135,245);
    	   	  Draw.drawLine(g2d,45,285,165,275);
    	   	  Draw.drawLine(g2d,125,210,65,330);
            Draw.drawLine(g2d,115,300,145,330);
    	   	  Draw.drawLine(g2d,275,155,275+i*10/20,155+i*10/20);
    	  }
    	  else if(a_frame<=260)
        {
        	  Draw.drawLine(g2d,40,50,100,50);
        	  Draw.drawLine(g2d,70,50,70,110);
    	   	  Draw.drawLine(g2d,40,120,100,100);
    	   	  Draw.drawLine(g2d,110,55,170,55);
    	   	  Draw.drawLine(g2d,170,55,165,135);
    	   	  Draw.drawLine(g2d,165,135,155,125);
    	      Draw.drawLine(g2d,140,25,120,145);
    	   	  Draw.drawLine(g2d,75,235,135,245);
    	   	  Draw.drawLine(g2d,45,285,165,275);
    	   	  Draw.drawLine(g2d,125,210,65,330);
    	      Draw.drawLine(g2d,115,300,145,330);
    	   	  Draw.drawLine(g2d,275,155,285,165);
    	      Draw.drawLine(g2d,255,175,255+i*50/20,175);
        }
     	  else if(a_frame<=280)
     	  {
    	   	  Draw.drawLine(g2d,40,50,100,50);
    	   	  Draw.drawLine(g2d,70,50,70,110);
    	   	  Draw.drawLine(g2d,40,120,100,100);
    	   	  Draw.drawLine(g2d,110,55,170,55);
    	      Draw.drawLine(g2d,170,55,165,135);
    	   	  Draw.drawLine(g2d,165,135,155,125);
    	      Draw.drawLine(g2d,140,25,120,145);
    	   	  Draw.drawLine(g2d,75,235,135,245);
    	   	  Draw.drawLine(g2d,45,285,165,275);
    	      Draw.drawLine(g2d,125,210,65,330);
    	      Draw.drawLine(g2d,115,300,145,330);
    	      Draw.drawLine(g2d,275,155,285,165);
    	      Draw.drawLine(g2d,255,175,305,175);
    	  	  Draw.drawLine(g2d,305,175,305-i*60/20,175+i*40/20);
        }
     	  else if(a_frame<=300)
     	  {
    	   	  Draw.drawLine(g2d,40,50,100,50);
    	   	  Draw.drawLine(g2d,70,50,70,110);
    	   	  Draw.drawLine(g2d,40,120,100,100);
    	   	  Draw.drawLine(g2d,110,55,170,55);
    	   	  Draw.drawLine(g2d,170,55,165,135);
    	   	  Draw.drawLine(g2d,165,135,155,125);
            Draw.drawLine(g2d,140,25,120,145);
    	   	  Draw.drawLine(g2d,75,235,135,245);
    	   	  Draw.drawLine(g2d,45,285,165,275);
    	   	  Draw.drawLine(g2d,125,210,65,330);
    	      Draw.drawLine(g2d,115,300,145,330);
    	   	  Draw.drawLine(g2d,275,155,285,165);
    	      Draw.drawLine(g2d,255,175,305,175);
        	  Draw.drawLine(g2d,305,175,245,215);
         	  Draw.drawLine(g2d,245,210,245+i*70/20,210+i*15/20);
        }
    	  else if(a_frame<=320)
    	  {
    	   	  Draw.drawLine(g2d,40,50,100,50);
    	   	  Draw.drawLine(g2d,70,50,70,110);
    	   	  Draw.drawLine(g2d,40,120,100,100);
    	   	  Draw.drawLine(g2d,110,55,170,55);
    	   	  Draw.drawLine(g2d,170,55,165,135);
    	   	  Draw.drawLine(g2d,165,135,155,125);
    	      Draw.drawLine(g2d,140,25,120,145);
        	  Draw.drawLine(g2d,75,235,135,245);
    	   	  Draw.drawLine(g2d,45,285,165,275);
    	   	  Draw.drawLine(g2d,125,210,65,330);
    	      Draw.drawLine(g2d,115,300,145,330);
    	   	  Draw.drawLine(g2d,275,155,285,165);
    	      Draw.drawLine(g2d,255,175,305,175);
    	   	  Draw.drawLine(g2d,305,175,245,215);
    	   	  Draw.drawLine(g2d,245,210,315,225);
    	     	g2d.setColor(Color.yellow);
    	     	Draw.drawLine(g2d,380,70,380+i*100/20,70);
          	g2d.setColor(Color.black);
     	  }
    	  else if(a_frame<=340)
     	  {
    	   	  Draw.drawLine(g2d,40,50,100,50);
    	   	  Draw.drawLine(g2d,70,50,70,110);
    	   	  Draw.drawLine(g2d,40,120,100,100);
    	   	  Draw.drawLine(g2d,110,55,170,55);
    	   	  Draw.drawLine(g2d,170,55,165,135);
    	   	  Draw.drawLine(g2d,165,135,155,125);
    	      Draw.drawLine(g2d,140,25,120,145);
    	   	  Draw.drawLine(g2d,75,235,135,245);
        	  Draw.drawLine(g2d,45,285,165,275);
    	   	  Draw.drawLine(g2d,125,210,65,330);
    	      Draw.drawLine(g2d,115,300,145,330);
    	      Draw.drawLine(g2d,275,155,285,165);
    	      Draw.drawLine(g2d,255,175,305,175);
    	   	  Draw.drawLine(g2d,305,175,245,215);
    	   	  Draw.drawLine(g2d,245,210,315,225);
    	     	g2d.setColor(Color.yellow);
          	Draw.drawLine(g2d,380,70,480,70);
          	Draw.drawLine(g2d,390,120,390+i*80/20,120);
          	g2d.setColor(Color.black);
        }
 	      else if(a_frame<=360)
        {
    	   	  Draw.drawLine(g2d,40,50,100,50);
    	   	  Draw.drawLine(g2d,70,50,70,110);
    	   	  Draw.drawLine(g2d,40,120,100,100);
    	      Draw.drawLine(g2d,110,55,170,55);
    	   	  Draw.drawLine(g2d,170,55,165,135);
    	   	  Draw.drawLine(g2d,165,135,155,125);
    	      Draw.drawLine(g2d,140,25,120,145);
    	   	  Draw.drawLine(g2d,75,235,135,245);
    	   	  Draw.drawLine(g2d,45,285,165,275);
    	   	  Draw.drawLine(g2d,125,210,65,330);
    	      Draw.drawLine(g2d,115,300,145,330);
    	   	  Draw.drawLine(g2d,275,155,285,165);
    	      Draw.drawLine(g2d,255,175,305,175);
    	   	  Draw.drawLine(g2d,305,175,245,215);
    	   	  Draw.drawLine(g2d,245,210,315,225);
    	     	g2d.setColor(Color.yellow);
    	     	Draw.drawLine(g2d,380,70,480,70);
    	     	Draw.drawLine(g2d,390,120,470,120);
    	   	  Draw.drawLine(g2d,430,70,430,70+i*100/20);
    	   	  g2d.setColor(Color.black);
        }
     	  else if(a_frame<=380)
     	  {
        	  Draw.drawLine(g2d,40,50,100,50);
    	      Draw.drawLine(g2d,70,50,70,110);
    	      Draw.drawLine(g2d,40,120,100,100);
    	      Draw.drawLine(g2d,110,55,170,55);
        	  Draw.drawLine(g2d,170,55,165,135);
        	  Draw.drawLine(g2d,165,135,155,125);
            Draw.drawLine(g2d,140,25,120,145);
    	      Draw.drawLine(g2d,75,235,135,245);
    	      Draw.drawLine(g2d,45,285,165,275);
        	  Draw.drawLine(g2d,125,210,65,330);
            Draw.drawLine(g2d,115,300,145,330);
        	  Draw.drawLine(g2d,275,155,285,165);
            Draw.drawLine(g2d,255,175,305,175);
        	  Draw.drawLine(g2d,305,175,245,215);
        	  Draw.drawLine(g2d,245,210,315,225);
          	g2d.setColor(Color.yellow);
          	Draw.drawLine(g2d,380,70,480,70);
          	Draw.drawLine(g2d,390,120,470,120);
        	  Draw.drawLine(g2d,430,70,430,170);
          	Draw.drawLine(g2d,370,170,370+i*120/20,170);
          	g2d.setColor(Color.black);
     	  }
 	      else
     	  {
     	      Draw.drawLine(g2d,40,50,100,50);
     	  	  Draw.drawLine(g2d,70,50,70,110);
     	  	  Draw.drawLine(g2d,40,120,100,100);
        	  Draw.drawLine(g2d,110,55,170,55);
        	  Draw.drawLine(g2d,170,55,165,135);
        	  Draw.drawLine(g2d,165,135,155,125);
            Draw.drawLine(g2d,140,25,120,145);
        	  Draw.drawLine(g2d,75,235,135,245);
        	  Draw.drawLine(g2d,45,285,165,275);
        	  Draw.drawLine(g2d,125,210,65,330);
 	          Draw.drawLine(g2d,115,300,145,330);
 	      	  Draw.drawLine(g2d,275,155,285,165);
            Draw.drawLine(g2d,255,175,305,175);
    	   	  Draw.drawLine(g2d,305,175,245,215);
    	   	  Draw.drawLine(g2d,245,210,315,225);
    	     	g2d.translate(430,170);
     	    	
     	    	if(i<=10)
    	     	    g2d.rotate(i*Math.PI/40);
    	     	else if(i<=15)
    	     	    g2d.rotate(Math.PI/4+(i-10)*Math.PI/20);
    	     	else
    	     	    g2d.rotate(Math.PI/2+(i-15)*Math.PI/10);
    	     	    
    	     	g2d.setColor(Color.yellow);
    	     	Draw.drawLine(g2d,-50,-100,50,-100);
    	     	Draw.drawLine(g2d,-40,-50,40,-50);
    	   	  Draw.drawLine(g2d,0,-100,0,0);
    	     	Draw.drawLine(g2d,-60,0,60,0);
    	     	g2d.setColor(Color.black);
    	     	
    	     	if(i<=10)
    	     	    g2d.rotate(-i*Math.PI/40);
    	     	else if(i<=15)
          	    g2d.rotate(-(Math.PI/4+(i-10)*Math.PI/20));
    	     	else
    	     	    g2d.rotate(-(Math.PI/2+(i-15)*Math.PI/10));
    	     	    
    	     	g2d.translate(-430,-170);
    	     	
 	      }
 	      
    }//方法drawTitle_a结束
    
    
    //“功夫之王”摇晃动画
    static void drawTitle_b(Graphics2D g2d,int a_frame)
    {
    	  int i = 0;
    	  
    	  Draw.drawLine(g2d,40,50,100,50);
     	  Draw.drawLine(g2d,70,50,70,110);
     	  Draw.drawLine(g2d,40,120,100,100);
     	  Draw.drawLine(g2d,110,55,170,55);
     	  Draw.drawLine(g2d,170,55,165,135);
     	  Draw.drawLine(g2d,165,135,155,125);
        Draw.drawLine(g2d,140,25,120,145);
     	  Draw.drawLine(g2d,75,235,135,245);
     	  Draw.drawLine(g2d,45,285,165,275);
     	  Draw.drawLine(g2d,125,210,65,330);
 	      Draw.drawLine(g2d,115,300,145,330);
 	   	  Draw.drawLine(g2d,275,155,285,165);
        Draw.drawLine(g2d,255,175,305,175);
 	   	  Draw.drawLine(g2d,305,175,245,215);
     	  Draw.drawLine(g2d,245,210,315,225);
     	  g2d.translate(430,170);
     	  g2d.rotate(Math.PI);
     	  
     	  if(a_frame<=10)
     	  {
     	  	  i = (a_frame<=5)? a_frame : (10-a_frame);
     	  	  g2d.rotate(i*Math.PI/20);
     	  }
     	  else if(a_frame<=16)
     	  {
     	  	  i = (a_frame<=13)? (-a_frame+10) : (-16+a_frame);
     	  	  g2d.rotate(i*Math.PI/20);
     	  }
     	  else
     	  {
     	  	  i = (a_frame<=18)? (a_frame-16) : (20-a_frame);
     	  	  g2d.rotate(i*Math.PI/25);
     	  }
     	  
     	  g2d.setColor(Color.yellow);
    	 	Draw.drawLine(g2d,-50,-100,50,-100);
      	Draw.drawLine(g2d,-40,-50,40,-50);
 	   	  Draw.drawLine(g2d,0,-100,0,0);
 	     	Draw.drawLine(g2d,-60,0,60,0);

⌨️ 快捷键说明

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