Jumat, 23 Maret 2012

pesawat mulai brgkt di lihat dri samping

/*
 * 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