Kollisionserkennung im Allgemeinen und konkrete Frage

jeipack

Erfahrenes Mitglied
Hi
Ich bin ganz neu in Java2D und um es zu lernen schreibe ich ein kleines Game ;)
Mein grosses Problem ist im Moment die Kollisionserkennung. In einem Beispiel wird es so gemacht, dass um beide Objekte ein Rechteck gezeichnet wird und dieses dann auf Überschneidungen überprüft wird:
Java:
//me = Rechteck um aktuelles Sprite (Objekt das gezeichnet wird und mit dem interagiert wird
Rectangle me = new Rectangle();
//him = Rechteck um das zu überprüfende Sprite
Rectangle him = new Rectangle();
public boolean collidesWith(Entity other) {
//um beide ein Rechteck zeichnen
	me.setBounds((int) x,(int) y,sprite.getWidth(),sprite.getHeight());
	him.setBounds((int) other.x,(int)other.y,other.sprite.getWidth(),other.sprite.getHeight());
//Prüfen ob es bei den beiden Rechtecken eine überschneidung gibt.
	return me.intersects(him);
}
Das Funktioniert soweit auch wunderbar. Nun ist es aber so, dass ich
0. so eine Überprüfung auch mit anderen geometrischen Objekten machen wolle (Rechteck, Kreis - aber dafür habe ich schon einen Thread aufgemacht).
1. Würde mich interessieren was es noch so für Techniken gibt für eine Kollisionserkennung (In den Beispielen die ich bis jetzt durchgelesen habe ist entweder diese Variante drin, oder eine spezifische, auf die jeweiligen Bedürfnisse zugeschnittene Variante).
- > Könnt ihr mir hier Links, SourceCode oder Ideen geben?

2. Ich nimm für mein Game transparente Gifs. Nun würde ich gerne die Kollisionserkennung so machen, dass nur wenn sich zwei nichttransparente Teile des Bildes berühren eine Kollision zu stande kommt. Ich müsste also ihrgendwie aus der Transparenz eine invertierte Maske (Nur das Sichtbare ist in der Maske) erstellen und diese mit einer anderen Maske auf Überschneidung prüfen.
-> Ist das mit Java relativ einfach umzusetzen? Gibt es da vielleicht Klassen die mir behilflich sein könnten? Gibt es Frameworks? Sonststiges?

Um Input bin ich froh :)

Gruss
jeipack
 
Zurück