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);
}
}