pytanie-gra(applet)

0

import javax.swing.;
import java.awt.event.
;
import java.awt.;
import java.awt.geom.
;

class Kulka extends Ellipse2D.Float
{
Pole plansza ;
Belka belka;
int dx,dy;

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;                                

}

void nextKrok()
{
x+=dx;
y+=dy;

  if(getMinX()<0 || getMaxX()>plansza.getWidth())  dx=-dx; 
  if(getMaxY()>plansza.getHeight())  dy=-dy;
  
  if(this.intersects(plansza.b)) dy=-dy;  //belka
  
  if(this.intersects(plansza.c)) dy=-dy;

  if(this.intersects(plansza.d)) dy=-dy;
  if(this.intersects(plansza.e)) dy=-dy;
  if(this.intersects(plansza.f)) dy=-dy;
  if(this.intersects(plansza.q)) dy=-dy;
  if(this.intersects(plansza.h)) dy=-dy;
  if(this.intersects(plansza.i)) dy=-dy;
  if(this.intersects(plansza.j)) dy=-dy;
  if(this.intersects(plansza.k)) dy=-dy;
  
  //drugi rzad
  
  if(this.intersects(plansza.l)) dy=-dy;
  if(this.intersects(plansza.m)) dy=-dy;
  if(this.intersects(plansza.n)) dy=-dy;
  if(this.intersects(plansza.o)) dy=-dy;
  if(this.intersects(plansza.p)) dy=-dy;
  if(this.intersects(plansza.r)) dy=-dy;
  if(this.intersects(plansza.s)) dy=-dy;
  if(this.intersects(plansza.t)) dy=-dy;
  if(this.intersects(plansza.u)) dy=-dy;
  	
  	
  	                                                       
  plansza.repaint();                                       

}

}

class SilnikKulki extends Thread
{
Kulka a;
Belka b;
int odbicia=0;
int u=0;
int wynik=0;

SilnikKulki(Kulka a)
{
this.a=a;
start();

}

public void run()
{
try
{
while(true)
{
a.nextKrok();
sleep(5);

        	if(a.y > a.plansza.b.y +50)
      
         	{
     	     JOptionPane.showMessageDialog( null , "   GAME OVER !!!" );
     	     this.stop();
         	}  
        	             
     }                            
  }                               
  catch(InterruptedException e){} 

}
}

class Belka extends Rectangle2D.Float
{
Belka(int x)
{
this.x=x;
this.y=280;
this.width=60;
this.height=10;
}

void setX(int x)
{
this.x=x;
}
}

class Cegielka extends Rectangle2D.Float
{
Cegielka(int x)
{

this.x=30;
this.y=80;
this.width=40;
this.height=8;

}

}

class Pole extends JPanel implements MouseMotionListener
{
Belka b=new Belka(100);
Kulka a=new Kulka(this,100,100,1,1);

Cegielka c=new Cegielka(100);
Cegielka1 d=new Cegielka1(100);
Cegielka2 e=new Cegielka2(100);
Cegielka3 f=new Cegielka3(100);
Cegielka4 q=new Cegielka4(100);
Cegielka5 h=new Cegielka5(100);
Cegielka6 i=new Cegielka6(100);
Cegielka7 j=new Cegielka7(100);
Cegielka8 k=new Cegielka8(100);

//drugi rzad

Cegielka9 l=new Cegielka9(100);
Cegielka10 m=new Cegielka10(100);
Cegielka11 n=new Cegielka11(100);
Cegielka12 o=new Cegielka12(100);
Cegielka13 p=new Cegielka13(100);
Cegielka14 r=new Cegielka14(100);
Cegielka15 s=new Cegielka15(100);
Cegielka16 t=new Cegielka16(100);
Cegielka17 u=new Cegielka17(100);

//trzeci rzad

//Cegielka11 n=new Cegielka11(100);
//Cegielka11 n=new Cegielka11(100);
//Cegielka11 n=new Cegielka11(100);
//Cegielka11 n=new Cegielka11(100);

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);
  g2d.fill(c);
  g2d.fill(d);
  g2d.fill(e);
  g2d.fill(f);
  g2d.fill(q);  
  g2d.fill(h);  
  g2d.fill(i);  
  g2d.fill(j);  
  g2d.fill(k);  
  g2d.fill(l);  
  g2d.fill(m);
  g2d.fill(n);
  g2d.fill(o);
  g2d.fill(p);
  g2d.fill(r);
  g2d.fill(s);
  g2d.fill(t);
  g2d.fill(u);                                                                            

}

public void mouseMoved(MouseEvent e)
{
b.setX(e.getX()-50);
repaint();
}

public void mouseDragged(MouseEvent e)
{

}
}

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

Mam taki kod i problem jest w tym ze nie umiem zrobic zeby cegielki znikaly kiedy uderzy o nie pileczka. Moze mi ktos pomoc??Z gory dzieki;)

0

najlepiej by było, żebyś w klasie Cegiełka umieścił jakieś pole typu boolean, które określa, czy dana cegiełka jest zniszczona czy nie (jeśli jest zniszczona - program nie rysuje jej na ekranie gry)

tu masz link do tutoriala jak taka prostą gierkę typu breakout zrobić:
http://zetcode.com/tutorials/javagamestutorial/breakout/

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