📄 secondyear.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 + -