Java / GLOOP: Kollision bei dem Billardtisch?

Hallo.

Ich habe ein Problem mit dem Billardtisch, den ich erstellen will. Ich habe es so weit geschafft, einen Tisch mit ein paar Bällen zu erstellen, aber ich weiß nicht, was man machen muss, damit der Ball stehen bleibt, wenn er den Rand vom Tisch berührt (oder die Bälle weiter rollen, wenn einer den anderen trifft).

Der ganze Quelltext:

import GLOOP.*;

public class Billiard {
  GLEntwicklerkamera meineKamera;
  GLLicht meinLicht;
  GLTastatur meineTastatur;
  GLQuader seite1, seite2, seite3, seite4, Tisch;
  GLKugel weiss, schwarz, blau, lila, gelb, grün, orange;

  public Billiard() {
    meineKamera = new GLEntwicklerkamera();
    meinLicht = new GLLicht();
    Tisch = new GLQuader(0, 0, -30, 670, 400, 4);
    seite1 = new GLQuader(350, 0, -20, 20, 450, 20);
    seite2 = new GLQuader(-350, 0, -20, 20, 450, 20);
    seite3 = new GLQuader(0, 212, -20, 700, 20, 20);
    seite4 = new GLQuader(0, -212, -20, 700, 20, 20);

    Tisch.setzeTextur("gfx/Grün.png");
    seite1.setzeTextur("gfx/HOLZ.png");
    seite2.setzeTextur("gfx/HOLZ.png");
    seite3.setzeTextur("gfx/HOLZ.png");
    seite4.setzeTextur("gfx/HOLZ.png");

    weiss = new GLKugel(0, 0, 0, 20);
    weiss.setzeTextur("gfx/weiss.png");
    schwarz = new GLKugel(175, -10, 0, 20);
    schwarz.setzeTextur("gfx/schwarz.png");
    blau = new GLKugel(250, -11, 0, 20);
    blau.setzeTextur("gfx/blau.png");
    lila = new GLKugel(250, -49, 0, 20);
    lila.setzeTextur("gfx/lila.png");
    gelb = new GLKugel(250, 26, 0, 20);
    gelb.setzeTextur("gfx/gelb.png");
    grün = new GLKugel(211, 7, 0, 20);
    grün.setzeTextur("gfx/grun.png");
    orange = new GLKugel(211, -30, 0, 20);
    orange.setzeTextur("gfx/orange.png");
    meineTastatur = new GLTastatur();
  }

  public void fuehreAus() {
    while (!meineTastatur.istGedrueckt(' ')) {
      if (meineTastatur.links()) {
        weiss.verschiebe(-2, 0, 0);
        Sys.warte(5);
      }

      if (meineTastatur.rechts()) {
        weiss.verschiebe(2, 0, 0);
        Sys.warte(5);
      }

      if (meineTastatur.oben()) {
        weiss.verschiebe(0, 2, 0);
        Sys.warte(5);
      }

      if (meineTastatur.unten()) {
        weiss.verschiebe(0, -2, 0);
        Sys.warte(5);
      }
    }
  }
}

Bild zu Frage
Ball, Java, Informatik, Kollision, GLOOP

Meistgelesene Fragen zum Thema Kollision