/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package grafkom;
/**
*
* @author Taufik
*/
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
public class Background extends JApplet {
//======Membuat Frame======//
public static void main(String args[])
{
JFrame frame=new JFrame();
frame.setTitle("Lintasan Pesawat Terbang");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JApplet applet=new Background();
applet.init();
frame.getContentPane().add(applet);
frame.pack();
frame.setVisible(true);
}
public void init()
{
JPanel panel=new panel2D();
getContentPane().add(panel);
}
}
class panel2D extends JPanel
{
int awan1 = 0, awan2 = 0, kapal = 0;
animasi anim1 = new animasi(this, 0);
animasi anim2 = new animasi(this, 1);
animasi anim3 = new animasi(this, 2);
suara y = new suara("bag3_0001.wav", suara.dalam);
public panel2D()
{
setPreferredSize(new Dimension(1280, 800));
setBackground(Color.green);
anim1.start();
anim2.start();
anim3.start();
y.LOOP();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2=(Graphics2D)g;
//========= Langit ============//
BasicStroke bsGarisTebal=new BasicStroke(10.0f);
g2.setStroke(bsGarisTebal);
GradientPaint warnaLangit = new GradientPaint(50, 100,Color.cyan ,50, 200, Color.white);
Rectangle2D.Double langit = new Rectangle2D.Double(0,0, 1280, 250);
g2.setPaint(warnaLangit);
g2.fill(langit);
g2.draw(langit);
//=============jalan================//
GeneralPath garisjalan=new GeneralPath();
g2.setStroke(new BasicStroke(3.0f));
garisjalan.moveTo(0, 300);
garisjalan.lineTo(1820, 300);
garisjalan.lineTo(1820, 500);
garisjalan.lineTo(0, 500);
garisjalan.lineTo(0, 300);
g2.setColor(Color.BLACK);
g2.draw(garisjalan);
g2.setPaint(Color.GRAY);
g2.fill(garisjalan);
//=====================grs ptus2===============//
float[] dashPattern = null;
float dashPhase = 0.0f;
dashPattern = new float[2];
dashPattern[0] = 40;
dashPattern[1] = 20;
BasicStroke bsBerpola = new BasicStroke(3.0f, BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL,3.0f,dashPattern, dashPhase);
g2.setStroke(bsBerpola);
g2.setColor(Color.white);
g2.drawLine(0,400,1280,400);
//========================= rumput ===========================//
/* GeneralPath rumput1=new GeneralPath();
g2.setColor(Color.black);
g2.setStroke(new BasicStroke(1.0f));
rumput1.moveTo(100, 600);
rumput1.quadTo(100, 575,50,550);
rumput1.quadTo(90,600,100,600);
rumput1.quadTo(100, 575,150,550);
rumput1.quadTo(110,600,100,600);
g2.draw( rumput1);*/
//=============pesawat=============//
awan1 = anim1.getOrdinat();
awan2 = anim2.getOrdinat();
g2.translate(800, 80);
//bodi
g2.setStroke (new BasicStroke(2.05f)) ;
g2.setPaint(Color.black);
g2.drawLine(200+awan2,290, 200+awan2,310);
g2.drawLine(250+awan2,300, 250+awan2,290);
g2.drawLine(260+awan2,300, 260+awan2,290);
Ellipse2D.Double roda = new Ellipse2D.Double(190+awan2,300,20,20);
g2.fill(roda);
Ellipse2D.Double rodab = new Ellipse2D.Double(240+awan2,300,20,20);
g2.fill(rodab);
Ellipse2D.Double rodac = new Ellipse2D.Double(250+awan2,300,20,20);
g2.fill(rodac);
GeneralPath a = new GeneralPath();
a.moveTo(160+awan2, 300);
a.lineTo(420+awan2, 280);
a.lineTo( 450+awan2, 190);
a.lineTo(410+awan2, 190);
a.lineTo(370+awan2, 235);
a.lineTo(290+awan2, 235);
a.curveTo(280+awan2, 230, 200+awan2, 215, 160+awan2, 260);
a.curveTo(100+awan2,270,150+awan2,305,160+awan2,300);
g2.draw(a);
GradientPaint warnaGradien1 = new GradientPaint(50,100, Color.red, 100,50, Color.yellow);
g2.setPaint (warnaGradien1);
g2.fill(a);
//kaca n garis sayap blkg
GeneralPath b = new GeneralPath();
b.moveTo(170+awan2, 260);
b.lineTo(220+awan2, 260);
b.lineTo(230+awan2, 237);
b.lineTo(205+awan2, 237);
b.curveTo(205+awan2, 237,188+awan2,240,170+awan2,260);
g2.draw(b);
g2.setColor(Color.BLUE);
g2.fill(b);
//sayap smping
g2.drawLine(410+awan2, 272, 440+awan2, 200);
g2.drawLine(440+awan2, 200, 425+awan2, 190);
g2.drawLine(290+awan2, 235, 370+awan2, 235);
g2.drawLine(410+awan2, 190, 450+awan2, 190);
g2.drawLine(190+awan2, 270, 240+awan2, 270);
g2.drawLine(170+awan2, 260, 220+awan2, 260);
g2.drawLine(220+awan2, 260, 230+awan2, 237);
g2.drawLine(230+awan2, 237, 205+awan2, 237);
GeneralPath c = new GeneralPath();
c.moveTo(240+awan2, 270);
c.lineTo(190+awan2, 270);
c.curveTo(100+awan2,300,400+awan2,280,240+awan2,270);
g2.draw(c);
g2.setColor(Color.YELLOW);
g2.fill(c);
//baling2 dpn
Arc2D s = (new Arc2D.Double(117+awan2,273,30,10,90,180,Arc2D.OPEN));
g2.draw(s);
g2.setColor(Color.ORANGE);
g2.fill(s);
Arc2D d = (new Arc2D.Double(127+awan2,232,5,90,190,345,Arc2D.OPEN));
g2.draw(d);
g2.setColor(Color.ORANGE);
g2.fill(d);
Area a1 = new Area(a);//bodi
Area a2 = new Area(b);
Area a3 = new Area(c);
Area a4 = new Area(s);
Area a5 = new Area(d);
a2.add(a1);
a3.add(a2);//garis blkg
a4.add(a3);//kaca
a5.add(a4);
g2.draw(a5);
}
}
Tidak ada komentar:
Posting Komentar