Hallo,
wir versuchen gerade die Kollisionsabfrage fertigzustellen. (Zwischen Ball/Steine/Schlaeger)
Als Fehlermeldung kommt im Copiler immer ""Cannot find variable x".
Was hat das zu bedeuten?
Was müssen wir ändern?
Ich füge hier den Text mal ein
THX
wir versuchen gerade die Kollisionsabfrage fertigzustellen. (Zwischen Ball/Steine/Schlaeger)
Als Fehlermeldung kommt im Copiler immer ""Cannot find variable x".
Was hat das zu bedeuten?
Was müssen wir ändern?
Ich füge hier den Text mal ein
Code:
import java.awt.*;
import java.util.*;
public class Ball
{
Random r=new Random();
int x=r.nextInt(255);
int y=r.nextInt(255);
int z=r.nextInt(255);
Color farbe=new Color(x,y,z);
int radius=18;
double posx, posy;
double richtung, speed=5;
Graphics g;
int maxx, maxy;
Schlaeger schlaeger;
public Ball(Graphics g, int breite, int hoehe, Schlaeger schlaeger)
{
this.g=g;
maxx=breite;
maxy=hoehe;
this.schlaeger=schlaeger;
}
public void bewegeUm()
{
posx=posx+speed*Math.cos(richtung*Math.PI/180);
posy=posy-speed*Math.sin(richtung*Math.PI/180);
}
public void kollision()
{
this.bewegeUm();
int x=schlaeger.x-schlaeger.breite/2;
int y=schlaeger.y-schlaeger.hoehe/2;
int w=schlaeger.breite;
int h=schlaeger.hoehe;
int testX=(int)posx;
int testY=(int)posy;
if (testX<x) testX=x;
if (testX>(x+w)) testX=(x+w);
if (testY<y) testY=y;
if (testY>(y+h)) testY=(y+h);
if(((posx+radius)>=maxx) || (posx<=0))
richtung=180-richtung;
if(posy<=0)
richtung=360-richtung;
if ((posy+radius+schlaeger.hoehe/2)>=schlaeger.posy)
{
if ((schlaeger.posx-schlaeger.breite/2)<=(posx+radius))
{
if ((schlaeger.posx+schlaeger.breite/2)>=(posx-radius))
{ richtung=360-richtung;
}
}
}
}
public void abschuss()
{
posx=schlaeger.posx;
posy=schlaeger.posy-schlaeger.hoehe/2-radius;
//Random r=new Random();
//-richtung=r.nextInt(180);
richtung=80;
}
public void zeichne()
{
Random r=new Random();
int x=r.nextInt(255);
int y=r.nextInt(48);
int z=r.nextInt(211);
g.setColor(new Color (x,y,z));
g.fillOval((int)posx-radius,(int)posy-radius,radius*2,radius*2);
}
}