Kollisionsabfrage von einem Stein mit einem Ball

Status
Nicht offen für weitere Antworten.

thomas.g

Bekanntes Mitglied
Hi,

ich entwickle gerade ein kleines Spiel in dem es darum geht (mit Java2D) die Steine mit einem Ball der sich ständig bewegt zu treffen.

Das Problem:

Ich weiß zwar durch vergleichen zweier Rectangle Objekte mit "intersects" dass Ball und Stein kollidieren, allerdings muss ich wissen auf welchen der vier Seiten des Steines der Ball aufgetroffen ist um wieder im richtigen Winkel wegfliegen zu können.

Wie könnte ich also eine simple Methode schreiben die mir mithilfe von diesen Koordinaten:
Ball: X-Koordinate, Y-Koordinate, Breite, Höhe ist bekannt
Stein: das selbe ist bekannt
...... berechnet auf welcher Seite der Ball aufgetroffen ist?

thx, thomas
 

0xdeadbeef

Top Contributor
Du mußt doch die Richtung kennen, in die sich der Ball gerade bewegt. Z.B. wenn die X-Geschwindigkeitskomponente gerade positiv ist, kann der Stein nicht auf der rechten Seite getroffen worden sein. Davon abgesehen kannst Du ja einfach die Koordinaten des Balls mit denen des Steins vergleichen. Zur Not den immer die alten Koordinaten vor der Kollision merken.
 

thomas.g

Bekanntes Mitglied
naja ich weiß mit zwei Variablen "incx" und "incy" (sind boolean) ob zu den X bzw Y Koordinaten des Balles die Geschwindigkeit addiert oder supprahiert werden soll.

Also weiß ich wie der Ball fliegt. (hinunter oder hinauf - rechts oder links)

Ich hatte allerdings gerade einen Geistesblitz doch der könnte zu langsam arbeiten, naja ich erklärs mal.

Da der Stein ja vier Seiten hat, mach ich einfach für jede Seite ein Rectangel Objekt und schau wiederrum mit "Rectangle.intersects" ob der Ball eines dieser 4 Rectangles berührt, danach weiß ich, wo der Ball aufgetroffen ist

z.B. hier die Skizze, hier nur zwei Rectangle dargestellt


--------- ___________ -------------
_ _
----------___________-------------


die ___________ Linien sollten den Stein symbolisieren, die ------------ Linien die vier Rectangles der vier Seiten des Steines; wie gesagt, ich weiß nicht ob das Abfragen sehr schnell geht aber es geht dafür dann 100%ig. Naja bis auf den Ecken, da könnte es Probleme geben ist aber meiner Meinung nach nicht von Bedeutung.

thx, thomas
 

0xdeadbeef

Top Contributor
Wenn der Stein wirklich von allen Seiten getroffen werden kann, reicht der Vektor alleine nicht.
Denn ein nach links unten zeigender Vektor könnte den Stein sowohl oben als auch auf der linken Seite treffen. Das kann man dann nur durch die Position herausfinden.

Ansonsten halte ich "intersects" in diesem Fall für das Schießen mit Kanonen auf Spatzen. Speziell die zweite Lösung mit mehren intersects.
 

thomas.g

Bekanntes Mitglied
ich habe es jetzt mal mit den mehreren intersects versucht, und es geht wirklich gut, fast zu 100% stimmen nun alle Kollsionsabfragen und durch meine indirect-buffering methode (mit VolatileImages) geht das ganze auch ziemlich schnell, bin aber noch für kürzere Lösungen dankbar.

thx, thomas
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A DoodleJump programmieren: Kollisionsabfrage Spiele- und Multimedia-Programmierung 6
T Problem bei Kollisionsabfrage Spiele- und Multimedia-Programmierung 4
S Polygon Kollisionsabfrage Spiele- und Multimedia-Programmierung 2
RalleYTN Erweiterte Kollisionsabfrage Spiele- und Multimedia-Programmierung 7
S Kollisionsabfrage zwischen Rechteck und Polygon Spiele- und Multimedia-Programmierung 1
J Java Kollisionsabfrage Spiele- und Multimedia-Programmierung 21
kaoZ Kollisionsabfrage implementieren Spiele- und Multimedia-Programmierung 63
T Problem mit Kollisionsabfrage der NPC Spiele- und Multimedia-Programmierung 1
F Kollisionsabfrage bei schnellen Objekten Spiele- und Multimedia-Programmierung 2
J Problem bei pixelgenauer Kollisionsabfrage Spiele- und Multimedia-Programmierung 10
M Kollisionsabfrage Spiele- und Multimedia-Programmierung 7
N Quake - Kollisionsabfrage Spiele- und Multimedia-Programmierung 21
N Problem mit Kollisionsabfrage beim Fallen Jump & Run Spiele- und Multimedia-Programmierung 5
R Kollisionsabfrage haut nicht hin Spiele- und Multimedia-Programmierung 15
Gossi Quaxlis 2D Tutorial....Probleme nach hinzufügen der Kollisionsabfrage Spiele- und Multimedia-Programmierung 16
U Jump n' Run 2D Geometrie und Kollisionsabfrage? Spiele- und Multimedia-Programmierung 11
baddestpoet Problem mit Kollisionsabfrage Spiele- und Multimedia-Programmierung 18
D Kollisionsabfrage von 2 Autos Spiele- und Multimedia-Programmierung 2
G Kollisionsabfrage (Mario klon) Spiele- und Multimedia-Programmierung 6
gieser Buggy Kollisionsabfrage Spiele- und Multimedia-Programmierung 4
masta // thomas Kollisionsabfrage - inspiriert durch "pixelgenaue Kolli Spiele- und Multimedia-Programmierung 13
gieser pixelgenaue Kollisionsabfrage der Kreise Spiele- und Multimedia-Programmierung 9
N Kollisionsabfrage Spiele- und Multimedia-Programmierung 6
D Jump and Run Game -- Kollisionsabfrage Spiele- und Multimedia-Programmierung 30
J Kollisionsabfrage Ball <-> Paddle Spiele- und Multimedia-Programmierung 2
E Rendering order auf einem ismetrischen Grid Spiele- und Multimedia-Programmierung 8
P Wie kann ich einem Programm hinter eine GUI verstecken? Spiele- und Multimedia-Programmierung 12
J (Libgdx) animation nur einmal in einem Event aufrufen Spiele- und Multimedia-Programmierung 1
B Programmieren wie der Befehl /ban in Minecraft geblockt wird aber nicht /ban mit einem Argument Spiele- und Multimedia-Programmierung 1
P selectedItem aus einem Methodenerstellten JPanel auslesen. Spiele- und Multimedia-Programmierung 5
O Problem beim Aufrufen des Spiels von einem Menü Spiele- und Multimedia-Programmierung 7
G Entity Verwaltung in einem 2D Spiel Spiele- und Multimedia-Programmierung 1
G Collision Detection in einem 2D Sandbox Game. Spiele- und Multimedia-Programmierung 2
E Einem A*-Pfad folgen Spiele- und Multimedia-Programmierung 27
G Auf einem Stick bewegen Spiele- und Multimedia-Programmierung 5
windl MP3-Tags von einem Inputstream auslesen Spiele- und Multimedia-Programmierung 5
U DPI von einem Bild definieren Spiele- und Multimedia-Programmierung 5
X Erklärung zu einem Tic Tac Toe Spiel Spiele- und Multimedia-Programmierung 1
C Hilfe bei einem Mosaikspiel Spiele- und Multimedia-Programmierung 16
M [JOGL] Maus über einem gezeichnetem Objekt abfragen? Spiele- und Multimedia-Programmierung 5
P Winkel von einem Punkt zum anderen berechnen Spiele- und Multimedia-Programmierung 9
X Kleines Problem mit Java Reflections und einem eigenen Eventhandler Spiele- und Multimedia-Programmierung 1
S Java3D: Primitives zu einem Objekt kombinieren Spiele- und Multimedia-Programmierung 7
Fl4sh1 Datum und Uhrzeit von einem Ereignis ausgeben lassen Spiele- und Multimedia-Programmierung 3
P Frage zu einem Projekt "Einarmiger Bandit" 3 Walzen / 9 Zeichnungen BLUEJ Spiele- und Multimedia-Programmierung 10
K Grundsätzlicher Spieleaufbau an (m)einem Beispiel Spiele- und Multimedia-Programmierung 4
S Problem mit Sichtfeld/Licht in einem Raster Spiele- und Multimedia-Programmierung 5
M Farbwerte für Flächen aus einem Bild erkennen Spiele- und Multimedia-Programmierung 3
A Drehen von einem Image Spiele- und Multimedia-Programmierung 4
F Bot updaten von einem Browser game Spiele- und Multimedia-Programmierung 7
W Java3D: Kanten die hinter einem Objekt liegen werden gezeigt Spiele- und Multimedia-Programmierung 2
B Reset bei einem Spiel Spiele- und Multimedia-Programmierung 16
C auf einem PC kein mp3 unter Java Spiele- und Multimedia-Programmierung 6
A Steuerung des Bewegungsflusses bei einem Netzwerkspiel Spiele- und Multimedia-Programmierung 18
R Mehrere Shader in einem Program Spiele- und Multimedia-Programmierung 8
B Generierung einer Wertetabelle aus einem Bild Spiele- und Multimedia-Programmierung 3
Z Kugeln aufgrund von Daten aus einem Array verschieben Spiele- und Multimedia-Programmierung 2
S Probleme mit JMenu in einem JFrame mit BufferStrategy Spiele- und Multimedia-Programmierung 2
K Kanten anzeigen lassen in einem Shape3D-Objekt Spiele- und Multimedia-Programmierung 4
A Interaktion von J3D in einem Applet Spiele- und Multimedia-Programmierung 4
N In einem Kasten springende Bälle programmieren...Hilfe Spiele- und Multimedia-Programmierung 7
H Speichern und Öffnen von einem Zeichenprogramm Spiele- und Multimedia-Programmierung 4
A Wie kann ich die Dateigröße aus einem tiff auslesen? Spiele- und Multimedia-Programmierung 2
hdi mehrere Threads/Tasks in einem synchronisieren -> TaskPoo Spiele- und Multimedia-Programmierung 36
N Farberkennung und -ersetzung in einem Bild Spiele- und Multimedia-Programmierung 2
F Umsetzung von einem Partikelsystem Spiele- und Multimedia-Programmierung 4
J Java3D Rotationsproblem bei einem 3D-Maennchen Spiele- und Multimedia-Programmierung 3
B Frage zur Spielsteuerung bei einem rundenbasiertes Spiel Spiele- und Multimedia-Programmierung 5
K Seitenlänge aus einem Würfel lesen Spiele- und Multimedia-Programmierung 3
K Einzelne Pixel in einem Bild lesen Spiele- und Multimedia-Programmierung 5
G Einen gif oder jpg Datei aus einem Graphics Objekt o. JFrame Spiele- und Multimedia-Programmierung 2
A 3D Gegenstand in einem 2D Koordinatensystem darstellen. Spiele- und Multimedia-Programmierung 3
K Hilfe bei Grafikeinbindung in einem Spiel Spiele- und Multimedia-Programmierung 6
D Image.getGraphics() in einem Frame Spiele- und Multimedia-Programmierung 4
G Bufferimage bei einem Frame Spiele- und Multimedia-Programmierung 4
I Zweite Kamera in einem SimpleUniverse Spiele- und Multimedia-Programmierung 6
D Fehler beim Stein Scher papier Spiel Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben