?? subtitle.java
字號:
////////////////////////////////////////////////////////////////////////////////
//
// 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 + -