Hallo an alle beteiligten,
ich wollte ein programm schreiben, wo ich ein ball bzw ein bild zufällig auf einem eigenen JPanel erzeuge. das klappt alles super.
jetzt wollte ich ein counter einbauen, der zählt, wenn ich einen treffer auf das bild mit der maus setze.
ich hab zwar den hintergrund transparent, aber das bild wird quadratisch erzeugt. sprich, es behält sein hintergrund, auch wenn der nicht sichtbar ist.
mit
kann ich den ballon "fangen" und den counter erhöhen. hier ist aber das problem, dass auch neben dem ball, wenn ich den transparenten hintergrund treffe, auch der counter zählt.
ich hab versucht, die koordinaten des balles in arrays zu speichern. ist im moment nicht elegant gelöst.
mit einer ähnlchen methode lass ich ein kreis auf dem ball erzeugen. das klappt auch.
die koordinaten stimmen auch soweit.
jetzt wollte ich die x-komponenten und die y-komponenten der arrays nutzen, um die koordinate des klicks zu bestimmen bzw. den punkt(klick) zwischen den zwei koordinaten bestimmen.
ich komm da nicht weiter.
kann mir jemand weiterhelfen. ich wäre sehr sehr dankbar für jegliche hilfe.
bitte keine dummen kommentare über den stil. ich bin anfänger und lerne gerade intensiv.
VIELEN DANK FÜR DIE HILFE!
aschmasch
ich wollte ein programm schreiben, wo ich ein ball bzw ein bild zufällig auf einem eigenen JPanel erzeuge. das klappt alles super.
jetzt wollte ich ein counter einbauen, der zählt, wenn ich einen treffer auf das bild mit der maus setze.
ich hab zwar den hintergrund transparent, aber das bild wird quadratisch erzeugt. sprich, es behält sein hintergrund, auch wenn der nicht sichtbar ist.
mit
Java:
evt.getX()>=jPBallon.getXKoordinate()&&evt.getY()>=jPBallon.getYKoordinate()
&&evt.getX()<=(jPBallon.getXKoordinate()+jPBallon.getBildB())&&
evt.getY()<=(jPBallon.getYKoordinate()+jPBallon.getBildH())
kann ich den ballon "fangen" und den counter erhöhen. hier ist aber das problem, dass auch neben dem ball, wenn ich den transparenten hintergrund treffe, auch der counter zählt.
ich hab versucht, die koordinaten des balles in arrays zu speichern. ist im moment nicht elegant gelöst.
Java:
for(alpha1 = 0;alpha1<xkoor.length;alpha1++){
double i =alpha1;
double a1 = Math.cos( Math.toRadians(i))*r;
double b1 = Math.sin((i*Math.PI/180))*r;
x2 = a1+x+img.getWidth(this)/2;
y2 = b1+y+img.getHeight(this)/2;
xkoor[alpha1]= (int) x2;
ykoor[alpha1]= (int) y2;
double a2 = Math.cos(Math.toRadians(90+i))*r;
double b2 = Math.sin(Math.toRadians(360-i))*r;
x3 = a2+x+img.getWidth(this)/2;
y3 = b2+y+img.getHeight(this)/2;
xkoor180[alpha1]= (int)x3;
ykoor180[alpha1]= (int) y3;
}
die koordinaten stimmen auch soweit.
jetzt wollte ich die x-komponenten und die y-komponenten der arrays nutzen, um die koordinate des klicks zu bestimmen bzw. den punkt(klick) zwischen den zwei koordinaten bestimmen.
ich komm da nicht weiter.
Java:
for(alpha=0; alpha<360;alpha++){
if(((double)evt.getX()<jPBallon.xkoor[alpha]&&evt.getX()>(double)jPBallon.xkoor180[alpha])
&&((double)evt.getY()<jPBallon.ykoor[alpha]&&(double)evt.getY()>jPBallon.ykoor180[alpha]))
{
treffer++;
}jLTreffer.setText(treffer+" von "+jPBallon.getAnzBallon());
}
}
kann mir jemand weiterhelfen. ich wäre sehr sehr dankbar für jegliche hilfe.
bitte keine dummen kommentare über den stil. ich bin anfänger und lerne gerade intensiv.
VIELEN DANK FÜR DIE HILFE!
aschmasch