import java.awt.*;
import javax.swing.*;
import java.applet.*;
import java.net.*;
public class Principal extends JFrame {
   
   private JLabel Sonic;
   private JPanel Tela;
   private int PosX, PosY;
   private int NumMonstros = 5;
   private JLabel Beholder[];
   private AudioClip Caminha = null;
   
   private Principal() {
      
      Tela = new JPanel();
      
      Sonic = new JLabel();
      Beholder = new JLabel[NumMonstros];
      
      Tela.add(Sonic);
      for(int i=0; i<NumMonstros; i++){
         Beholder[i] = new JLabel();
         Tela.add(Beholder[i]);
      }
      
      getContentPane().add(Tela, BorderLayout.CENTER);
      
      pack();
      setSize(800,600);
      setTitle("Soniquinho");
      
      for(int i=0; i<NumMonstros; i++){
         Beholder[i].setIcon(new ImageIcon("/tmp/minicurso/Monstro.gif"));
         new Monstro(Beholder[i], Sonic).start();
      }
      
      Sonic.setIcon(new ImageIcon("/tmp/minicurso/SonicCorrendoDir.gif"));
      
      PosX = Sonic.getLocation().x;
      PosY = Sonic.getLocation().y;
      
      try{
         URL u;
         u = new URL("file:///tmp/minicurso/hithard.wav");
         Caminha = Applet.newAudioClip(u);
      }catch(Exception e){}
      
      addKeyListener(new java.awt.event.KeyAdapter() {
         public void keyPressed(java.awt.event.KeyEvent evt) {
            TrataTeclas(evt);
         }
      });
   }
   
   private void TrataTeclas(java.awt.event.KeyEvent evt) {
      switch(evt.getKeyCode()){
         case 37: 
         {
            if(PosX>0)PosX -= 7;
            Sonic.setIcon(new ImageIcon("/tmp/minicurso/SonicCorrendoEsq.gif"));
            Caminha.stop();
            Caminha.play();
            
            break;            
         }
         case 39:
         {
            if(PosX<700)PosX += 7;
            Sonic.setIcon(new ImageIcon("/tmp/minicurso/SonicCorrendoDir.gif"));
            break;            
         }         
         case 38:
         {
            if(PosY>0)PosY -= 7;
            break;
         }
         case 40:
         {
            if(PosY<600-Sonic.getHeight())PosY += 7;
            break;
         }
      }
      
      Sonic.setLocation(PosX, PosY);
      
   }   
   
   public static void main(String args[]) {
      new Principal().setVisible(true);
   }
}