HitTest , Kollesions abfrage

Status
Nicht offen für weitere Antworten.

DeathSoul

Mitglied
Hi ho bräuchte eine Methode, die mir ausgibt ob es eine kollesion gegeben hat bzw , ob die kugel meinen Tank getroffen hat.

So das klingst erstmal nicht schwer, aber jetzt kommts , der Tank ist eine Grafik2d object und kann sich drehen wodurch es für mich es sehr schwer erscheint so eine methode zu schreiben . Bin leider in so mathe Funktionen eine 0.

Wäre super wenn mir da jemand weiter helfen kann.
 

andre111

Bekanntes Mitglied
Sag mal etwas genauer was genau die Kugel und was genau der Tank ist. Zudem kannste auch den dazugehörenden Code posten.

lg André
 

DeathSoul

Mitglied
Java:
public Tank(int x, int y, float rotation, int width, int height) {

		this.x = x;
		this.y = y;

		this.width = width;
		this.height = height;

	}





public void paintComponent(Graphics g) {

		final Graphics2D ga = (Graphics2D) g;
		final AffineTransform reset = ga.getTransform();

		final AffineTransform af = new AffineTransform();

		tank = (Graphics2D) g;

		g.setColor(Color.RED);

		tank.rotate(tankWinkel * Math.PI / 180, x + 50, y + 50);
		tank.fillRect(x, y, width, height);

		ga.setTransform(af);

		geschütz = (Graphics2D) g;

		g.setColor(Color.BLUE);

		geschütz.rotate(geschützWinkel, 60 + x, y + 50);
		geschütz.fillRect(x + 50, y + 40, 120, 20);

		geschütz.setTransform(reset);

	}


So das ist mein Panzer mit geschützturm , dieser kann kugeln schiessen bzw kreise.
und ich möcht prüfen wann eine Kugel den Panzerberührt
 

Steev

Bekanntes Mitglied
Wenn der Panzer ein Bild ist, dann musst du entweder pixelgenau durch das Auslesen der Pixel und der Überprüfung des entsprechenden Alpha-Wertes eine Kollision überprüfen (habe ich zwar mal gemacht, ist aber manchmal ein ziemlicher Aufstand, weil jeder Punkt der überprüft werden soll entsprechend des zu prüfenden Objektes transformiert werden muss) oder du erstellst dir eine Shape, mit der du anhand der Standardmethoden einfach überprüfst ob ein Punkt innerhalb des Shapes ist.
 

Lulumann6

Aktives Mitglied
ich habe genau das selbe auch schon einmal programmiert, dafür habe ich die java.awt.Polygon klasse genuzt. du setzt einfach die ecken des panzers als punkte in dem polygon, somit kannst du mit der contains(x,y) methode bestimmen ob deine kugel innerhalb des polygons ist.
das etwas schwierige ist, wenn du deinen panzer rotieren willst, dann kommst du an mathe nicht herum.
 

Quaxli

Top Contributor
Das Tutorial bezieht sich allerdings auf Bilder - nicht auf Grafikprimitive.
Und auf Rotation geht es auch nicht ein.
 

OliverKroll

Aktives Mitglied
Auf meiner Homepage ist eine Java-Klasse, die für Spiele mit drehbaren Bildern ist (Olivers Seite). Ist auch ein kleines Spiel mit drehbaren Bildern dabei (Vertikal-Shooter).

Ich hatte vor fast einem Jahr hier in zwei Beiträgen etwas dazu geschrieben:
http://www.java-forum.org/spiele-un...ssig-spielchen-bring-mich-zum-abstuerzen.html
http://www.java-forum.org/spiele-un...applets-als-anregung-auf-meiner-homepage.html

Ein kompletter Pac-Man ist übrigens auch dabei (mit Programmtext).

Vielleicht schaust du es dir einmal an und findest das Passende für dich.

Edit: Die drehbaren Bilder/Objekte sind im dritten der vier Spiele.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben