Monday 26 September 2011

A program for moving cars


import java.awt.*;
import java.util.*;
import java.applet.*;
/*
 <APPLET CODE="Animation.java" WIDTH=400 HEIGHT=300>
 </APPLET>
*/
//The basic applet class.The applet shows 4 cars crossing each other at a square.
 public class Animation extends Applet implements Runnable
 {
 Thread t;
 //4 variables used to vary the car's positions.
 int x1=0,x2=380,y1=50,y2=250;
 public void start()
 {
   if(t==null)
   {
   t=new Thread(this,"New Thread");//New side Thread created on start of applet.
   t.start();
   }
 }
  public void stop()
  {
   if(t!=null)
   {
   t=null;//On stop of applet the created thread is destroyed.
   }
  }


 //Implementation of method run() of Runnable interface.


  public void run()
  {
  Thread t1=Thread.currentThread();
  while(t==t1)
  {
   repaint();
   try
   {
    Thread.sleep(100);
   }
   catch(Exception e)
   {   }
   }
 }
 public void paint(Graphics g)
 {
  setBackground(Color.cyan);
  g.setColor(Color.BLACK);
  x1=(x1+16)%400;
  x2=x2-16;
  y1=(y1+12)%300;
  y2=y2-12;
  if(y2<0)
   y2=288;
  if(x2<0)
   x2=384;
  //Draw the roads using 2 filled rectangles using black color.
  g.fillRect(0,130,400,40);
  g.fillRect(180,0,40,305);
  //Draw the white colored lines.
  g.setColor(Color.white);
  for(int i=0;i<20;i++)
  {
   if(i!=9 && i!=10)
    g.drawLine(i*20,150,i*20+10,150);
  }
  for(int j=0;j<15;j++)
  {
   if(j!=7 && j!=8)
    g.drawLine(200,j*20,200,j*20+10);
  }
  //Draw 4 colored cars using filled round rectangles.
  g.setColor(Color.red);
  g.fillRoundRect(x2,152,20,8,2,2);
  g.fillRoundRect(x1,140,20,8,2,2);
  g.fillRoundRect(190,y1,8,20,2,2);
  g.fillRoundRect(202,y2,8,20,2,2);
 }
}

No comments:

Post a Comment