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;
}
}