Rechteck Kollision

F4ckHanoi

Mitglied
Ich habe ein kleines Problem bei der Kollisionserkennung. Es geht um zwei Bilder die sozusagen einen Box haben. Mir fehlt nur noch eine Sache.

Pseudocode:

wenn(rechte rahmen von figur den linken rahmen von gegner berührt{
//tu was
}

wenn(linkerahmen von figur den rechten rahmen von gegner berührt{
//tu was
}

Die beiden habe ich schon gelöst und es funktioniert auch wunderbar.

Mein Problem liegt gerade bei:

wenn(untere rahmen von figur den oberen rahmen von gegner berührt{
//tu was
}


Ich bitte um Hilfe!
 

F4ckHanoi

Mitglied
Ich habs jetzt versucht aber funktioniert nicht so ganz. Also mein Charakter berührt den Gegner nicht, springt aber über Ihn und dann bekomme ich die Ausgabe. Ich möchte aber, dass wenn ein Kollision stattfindet und mein Charakter über den Gegner ist, etwas passiert
 

Blender3D

Top Contributor
Ich habe einen Pacman clone geschrieben. Dort löse ich die Kollision so:
for (int i = 0; i < rectGhost.length; i++) {

if (intersectsRect(rectGhost)) {
 

Blender3D

Top Contributor
Ich habe einen Pacman clone geschrieben. Dort löse ich die Kollision so:
Code:
        for (int i = 0; i < rectGhost.length; i++) {
            if (intersectsRect(rectGhost[i])) {
                // mach was
            }
        }
Code:
public boolean intersectsRect(Rectangle r) {       
        Rectangle rect = getRectangle();
        if (isPointInRect(rect.x, rect.y, r))
            return true;
        if (isPointInRect(rect.x + rect.width, rect.y, r))
            return true;
        if (isPointInRect(rect.x + rect.width, rect.y + rect.height, r))
            return true;
        if (isPointInRect(rect.x, rect.y + rect.height, r))
            return true;
        return false;
    }

    private boolean isPointInRect(int x, int y, Rectangle r) {
        if (x >= r.x && x <= r.x + r.width && y >= r.y && y <= r.y + r.height)
            return true;
        return false;
    }
 

F4ckHanoi

Mitglied
Also mit intersects habe ich es versucht. Das hatte ich als erstes vor, habe es auch umgesetzt gehabt, funktioniert aber nicht. Wenn mein Charakter die Feinde berührt, dann verliert er leben. Aber wenn ich auf deren Köpfe springe und drauf "lande", dann sterben diese. Das konnte ich nicht mit intersects programmeiren.

und Jardcore zu deiner Aussage: Hier liegen 5-6 Blätter rum die vollgekrizelt sind :d.


Bitte um Hilfe!
 

Jardcore

Top Contributor
Versuche das Problem in Teilprobleme aufzuteilen.
Du brauchst scheinbar eine Kollision eines Charakters von allen Seiten plus einer Spezialbehandlung von Oben.
Java:
private void checkCollision() {
   for(Enemy enemy : enemies) {
       if(enemy.collidesWith(player)) {
          if(enemy.isUnder(player)) {
              enemy.die();
          } else {
              player.hurt();
          }
       }
   }
}

Entity {
   public boolean isUnder(Entity entity) {
      return distanceToGround() < entity.distanceToGround();
   }

   public double distanceToGround() {
      return (y + size - GROUND_Y);
   }
}

Den ersten Teil hast du ja soweit fertig ....denke ich, also eine simple Kollision von allen Seiten.
Du könntest jetzt eine Extra Bedingung erstellen die einfach nur y prüft.

EDIT: Player und Enemy erben von Entity
 
Zuletzt bearbeitet:

Blender3D

Top Contributor
Pseudocode:
wenn (Player.intersects( feind.getRectangle() ){
wenn( (feind.getY() - Player.getY () - minimumHeight) >= 0 )
// Spieler über Feind + Mindeshöhe
sonst
// Spieler neben unter oder vor Feind

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Kollision Polygon und Rechteck Spiele- und Multimedia-Programmierung 2
S Kollision Kreis Rechteck Spiele- und Multimedia-Programmierung 8
S Kollisionsabfrage zwischen Rechteck und Polygon Spiele- und Multimedia-Programmierung 1
S LWJGL Rechteck wird nicht gezeichnet Spiele- und Multimedia-Programmierung 6
M Rechteck erkennung innerhalb einer Matix Spiele- und Multimedia-Programmierung 4
Q Rechteck in BIld suchen Spiele- und Multimedia-Programmierung 8
P Rechteck drehen Spiele- und Multimedia-Programmierung 3
P Rechteck rotieren und frontal anzeigen Spiele- und Multimedia-Programmierung 2
M Bilder verzerren [Rechteck -> Trapez] Spiele- und Multimedia-Programmierung 4
T Rechteck "ziehen"!? Spiele- und Multimedia-Programmierung 1
L ein Rechteck zeichnen Spiele- und Multimedia-Programmierung 6
B Kollision Spiele- und Multimedia-Programmierung 5
A Kollision funktioniert nicht richtig bei zu schneller Geschwindigkeit des Spielers Spiele- und Multimedia-Programmierung 0
N Kollision von zwei ImageIcons Spiele- und Multimedia-Programmierung 8
D Kollision funktioniert unten aber nicht oben Spiele- und Multimedia-Programmierung 4
J Kollision (libgdx) Spiele- und Multimedia-Programmierung 2
S Kollision Spiele- und Multimedia-Programmierung 2
J Kollision genau erkennen mit intersects Spiele- und Multimedia-Programmierung 27
K a* kollision der einheiten Spiele- und Multimedia-Programmierung 3
S Probleme bei Breakout - Brick kollision Spiele- und Multimedia-Programmierung 2
H 2- D Kollision Spiele- und Multimedia-Programmierung 14
C Zeldaklon Problem mit Wand-Kollision Spiele- und Multimedia-Programmierung 8
S Pacman Kollision von Münzen und Mauern Spiele- und Multimedia-Programmierung 11
P Gridpane Kollision Spiele- und Multimedia-Programmierung 3
Androbin Kollision zwischen Raster und Nicht-Raster Spiele- und Multimedia-Programmierung 2
L Kollision soll nur an oberer Seite (Breite) möglich sein Spiele- und Multimedia-Programmierung 6
Hercules Kisten Kollision Spiele- und Multimedia-Programmierung 2
S 3D-Kollision mit zwei ArrayLists Spiele- und Multimedia-Programmierung 7
T Pixelgenaue Kollision Spiele- und Multimedia-Programmierung 5
A LWJGL 3D Objekte Kollision Spiele- und Multimedia-Programmierung 3
S Kollision tile-based 2D Plattformer Spiele- und Multimedia-Programmierung 2
D Greenfoot Kollision Spiele- und Multimedia-Programmierung 5
D Kollision verhindern Spiele- und Multimedia-Programmierung 2
R Frage zur Kollision Spiele- und Multimedia-Programmierung 5
Maxim6394 [Java3D] Probleme bei Kollision Spiele- und Multimedia-Programmierung 7
Kr0e Kollision zweier Kugeln... Wo ist Newton ?? Spiele- und Multimedia-Programmierung 9
C Kollision zwischen 2 Kreisen Spiele- und Multimedia-Programmierung 3
Helgon Kollision von jeder Seite des Blocks Spiele- und Multimedia-Programmierung 3
Fab1 Kollision die 100ste Spiele- und Multimedia-Programmierung 5
D Jump'n'run Kollision bei Blöcken Spiele- und Multimedia-Programmierung 10
P PingPong Spiel - Kollision Spiele- und Multimedia-Programmierung 2
C Bitmaske und Kollision Spiele- und Multimedia-Programmierung 2
J Spielprogrammierung mit bewegung und kollision Spiele- und Multimedia-Programmierung 24
aze Java3D: Gegenstände aufeinander zubewegen ohne Kollision Spiele- und Multimedia-Programmierung 4
baddestpoet pixelgenaue Kollision Spiele- und Multimedia-Programmierung 4
S Kollision in 2D Spiele- und Multimedia-Programmierung 12
B Gedrehte Rechtecke Kollision Spiele- und Multimedia-Programmierung 4
J Kollision mit Block (Wand) Spiele- und Multimedia-Programmierung 11
C Kollision in Java3D Spiele- und Multimedia-Programmierung 4
J Kollision von Objekten Spiele- und Multimedia-Programmierung 7
M Asteroids Clone: Kollision zwischen Schuss und Feind Spiele- und Multimedia-Programmierung 13
F Bewegung/Kollision von Objekten auf Tastendruck Spiele- und Multimedia-Programmierung 6
Z Kollision Spiele- und Multimedia-Programmierung 3
F Kollision für Arkanoid Spiele- und Multimedia-Programmierung 2
N Kollision abfragen Spiele- und Multimedia-Programmierung 3
K Sprites / Kollision Spiele- und Multimedia-Programmierung 3
S Jump'n'Run: Probleme mit Kollision Spiele- und Multimedia-Programmierung 13

Ähnliche Java Themen

Neue Themen


Oben