arkanoid - obsługa belki

0

mam kod:

package arkanoid;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.awt.geom.*;
class Kulka extends Ellipse2D.Float
{
   Pole plansza;
   int dx,dy;
   Belka b;
   
   Kulka(Pole plansza,int x,int y,int dx,int dy) 
   {                                             
      this.x=x;                                  
      this.y=y;                                  
      this.width=10;                             
      this.height=10;                            
                                                 
      this.plansza=plansza;                      
      this.dx=dx;                                
      this.dy=dy;                                
   }                                             
  
    @SuppressWarnings("static-access")
   void nextKrok()                                              
   {                                                           
      x+=dx;                                                   
      y+=dy;                                                   
                                                               
      if(getMinX()<0 || getMaxX()>plansza.getWidth())  dx=-dx; 
      if(getMinY()<0 || getMaxY()>plansza.getHeight()) dy=-dy;      
      if(getY()>165) { dy=-dy;}
     
      plansza.repaint();                                       
   }                                                           
}

class SilnikKulki extends Thread
{
   Kulka a;
   
   SilnikKulki(Kulka a) 
   {                    
      this.a=a;         
      start();          
   }                    
   
    @Override
   public void run()                   
   {                                  
      try                             
      {                               
         while(true)                  
         {                            
            a.nextKrok();             
            sleep(15);                
         }                            
      }                               
      catch(InterruptedException e){} 
   }                                  
}


class Belka extends Rectangle2D.Float
{
    //static public int x;
    //static public int y;
   Belka(int x)       
   {                  
      this.x=x;       
      this.y=170;     
      this.width=60;  
      this.height=10; 
   }                  
   
   void setX(int x) 
   {                
      this.x=x;     
   }     
  
   
}

class Pole extends JPanel implements MouseMotionListener
{
   Belka b=new Belka(100);
   Kulka a=new Kulka(this,100,100,1,1);
   
   Pole()                           
   {                                
      super();                      
      addMouseMotionListener(this); 
      new SilnikKulki(a);           
   }                                
   
   public void paintComponent(Graphics g)                                                       
   {                                                                                           
      super.paintComponent(g);                                                                 
      Graphics2D g2d=(Graphics2D)g;                                                            
      g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); 
                                                                                               
      g2d.fill(a);                                                                             
      g2d.fill(b);                                                                             
   }                                                                                           
   
   public void mouseMoved(MouseEvent e) 
   {                                    
      b.setX(e.getX()-50);              
      repaint();                        
   }                                    
   
   public void mouseDragged(MouseEvent e) 
   {                                      
                                          
   }                                      
}

public class Arkanoid extends JApplet
{
   public void init()              
   {                              
      setContentPane(new Pole()); 
   }                              
}

jak dorobić obługe belki - nie mam pojęcia jak to zrobić proszę o pomoc

0

Dobrze kombinujesz, co ci tu nie działa? poza tym że narobiłeś strasznego bałaganu np. nie wiem po jakiego grzyba tu wątki zaciągać do pracy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1