Subato

GeoGame

package name.panitz.oose.ws17;

public class SimpleGeoGame implements GeoGame {
  GeometricObject[] geos;
  int width;
  int height;
  
  public SimpleGeoGame(int width,int height, GeometricObject...
      geometricObjects) {
    geos = geometricObjects;
    this.width = width;
    this.height = height;
  }
  
  public SimpleGeoGame(GeometricObject... geometricObjects) {
    this(800,600,geometricObjects);
  }
  
  @Override
  public void move() {
    for (GeometricObject geo : geos) {
      geo.move();
    }
  }

  @Override
  public void collisionCheck() {
    for (int i = 0; i < geos.length; i++) {
      GeometricObject geo = geos[i];
      if (geo.corner.x <= 0 || geo.corner.x+geo.width>=getWidth()){
        geo.velocity.x *= -1;
      }
      if (geo.corner.y <= 0 || geo.corner.y+geo.height>=getHeight()){
        geo.velocity.y *= -1;
      }
        
      for (int j = i+1; j < geos.length; j++) {
        GeometricObject geo2 = geos[j];
        if (geo.touches(geo2)){
          Vertex v = geo.velocity;
          geo.velocity = geo2.velocity;
          geo2.velocity = v;
        }
      }
    }
  }
  @Override
  public GeometricObject[] getGeos() {
    return geos;
  }
  @Override
  public int getWidth() {
    return 800;
  }
  @Override
  public int getHeight() {
    return 600;
  }
}