This Java tip demonstrates method of detecting collision with Sprite. The Sprite is a Layer that may contain several frames stored in an Image. With Sprite we can use parts of the image as frames and make a sequence of frames to create motion etc. This may further be used in creating animated games.

  // Create a sprite 
 
 void init() {
    
    try {
      //sprite Image
      img1=Image.createImage("/sprite1.png");
      img2=Image.createImage("/sprite2.png");
    } catch(Exception e){}

    sprite1=new Sprite(img,95,35);
    sprite2=new Sprite(img,95,35);    
  }
  
  public void paint(Graphics g) {
    
    sprite1.paint(g) ;
    sprite1.paint(g) ;
    
    //Detecting collision at pixel level
    if(sprite1.collidesWith(sprite2,true) ) {
        g.drawString("colision x1="+x1+ "and y1="+
      y1, 10, 10, g.TOP|g.LEFT);
    }    
  }
  

  void update() {

    Random rnd=new Random();
    
    //Get random values
    int x1=nextInt(getWidth() );
    int x2=nextInt(getWidth() );

    int y1=nextInt(getHeight() );
    int y2=nextInt(getHeight() );
    
    sprite1.setRefPixelPosition(x1,y1) ;
    sprite2.setRefPixelPosition(x2,y2) ;
    
  }
  
  
  public void run() {
    
    while(true)
    {
      //Send paint request
      repaint();
      
      //Update sprites position
      update();
  
      try {
        Thread.sleep(500);
      }catch(Exception e){}
      
    }
  }

 


 

 

 Related Tips