use of spacesettlers.utilities.Position in project spacesettlers by amymcgovern.
the class TestCollisionHandler method testElasticCollisionsShipToAsteroidX.
@Test
public void testElasticCollisionsShipToAsteroidX() {
Ship ship1;
Asteroid asteroid;
Position ship1Pos = new Position(0, 0, Math.PI / 4);
ship1Pos.setTranslationalVelocity(new Vector2D(20, 0));
ship1 = new Ship("team1", Color.BLUE, ship1Pos);
Position asteroid2Pos = new Position(10, 0, -Math.PI / 4);
asteroid2Pos.setTranslationalVelocity(new Vector2D(-10, 0));
asteroid = new Asteroid(asteroid2Pos, false, 10, true, .33, .33, .34);
ship1.setMass(asteroid.getMass());
collisionHandler.collide(ship1, asteroid, space);
assertEquals(ship1.getPosition().getTranslationalVelocityX(), -10, 0.01);
assertEquals(ship1.getPosition().getTranslationalVelocityY(), 0, 0.01);
assertEquals(asteroid.getPosition().getTranslationalVelocityX(), 20, 0.01);
assertEquals(asteroid.getPosition().getTranslationalVelocityY(), 0, 0.01);
}
use of spacesettlers.utilities.Position in project spacesettlers by amymcgovern.
the class TestCollisionHandler method testCollidingWithMineableAsteroid.
@Test
public void testCollidingWithMineableAsteroid() {
Ship ship1;
Asteroid asteroid;
Position ship1Pos = new Position(0, 0, Math.PI / 4);
ship1Pos.setTranslationalVelocity(new Vector2D(20, 0));
ship1 = new Ship("team1", Color.BLUE, ship1Pos);
Position asteroid2Pos = new Position(10, 0, -Math.PI / 4);
asteroid2Pos.setTranslationalVelocity(new Vector2D(-10, 0));
asteroid = new Asteroid(asteroid2Pos, true, 10, true, .33, .33, .34);
ResourcePile asteroidResources = asteroid.getResources();
collisionHandler.collide(ship1, asteroid, space);
assertEquals(ship1.getResources().getResourceQuantity(ResourceTypes.FUEL), asteroidResources.getResourceQuantity(ResourceTypes.FUEL), 0.0);
assertEquals(ship1.getResources().getResourceQuantity(ResourceTypes.WATER), asteroidResources.getResourceQuantity(ResourceTypes.WATER), 0.0);
assertEquals(ship1.getResources().getResourceQuantity(ResourceTypes.METALS), asteroidResources.getResourceQuantity(ResourceTypes.METALS), 0.0);
}
use of spacesettlers.utilities.Position in project spacesettlers by amymcgovern.
the class TestCollisionHandler method testElasticCollisionsAsteroidsMoveableToNonMoveableOnX.
@Test
public void testElasticCollisionsAsteroidsMoveableToNonMoveableOnX() {
Asteroid asteroid1, asteroid2;
Position position1 = new Position(0, 0, Math.PI / 4);
position1.setTranslationalVelocity(new Vector2D(20, 0));
asteroid1 = new Asteroid(position1, false, 10, true, .33, .33, .34);
Position position2 = new Position(10, 0, -Math.PI / 4);
asteroid2 = new Asteroid(position2, false, 10, false, .33, .33, .34);
collisionHandler.collide(asteroid1, asteroid2, space);
assertEquals(asteroid1.getPosition().getTranslationalVelocityX(), -20, 0.01);
assertEquals(asteroid1.getPosition().getTranslationalVelocityY(), 0, 0.01);
assertEquals(asteroid2.getPosition().getTranslationalVelocityX(), 0, 0.01);
assertEquals(asteroid2.getPosition().getTranslationalVelocityY(), 0, 0.01);
}
use of spacesettlers.utilities.Position in project spacesettlers by amymcgovern.
the class TestCollisionHandler method testElasticCollisionsAsteroidsMoveableToMoveableOnX.
@Test
public void testElasticCollisionsAsteroidsMoveableToMoveableOnX() {
Asteroid asteroid1, asteroid2;
Position position1 = new Position(0, 0, Math.PI / 4);
position1.setTranslationalVelocity(new Vector2D(20, 0));
asteroid1 = new Asteroid(position1, false, 10, true, .33, .33, .34);
Position position2 = new Position(10, 0, -Math.PI / 4);
position2.setTranslationalVelocity(new Vector2D(-10, 0));
asteroid2 = new Asteroid(position2, false, 10, true, .33, .33, .34);
collisionHandler.collide(asteroid1, asteroid2, space);
assertEquals(asteroid1.getPosition().getTranslationalVelocityX(), -10, 0.01);
assertEquals(asteroid1.getPosition().getTranslationalVelocityY(), 0, 0.01);
assertEquals(asteroid2.getPosition().getTranslationalVelocityX(), 20, 0.01);
assertEquals(asteroid2.getPosition().getTranslationalVelocityY(), 0, 0.01);
}
use of spacesettlers.utilities.Position in project spacesettlers by amymcgovern.
the class TestToroidal2DPhysics method testfindShortestDistance.
/**
* Tests points all around the current point
*
* (40, 40) (60, 40)
*
* (50,50)
*
* (40, 60) (60, 60)
*/
@Test
public void testfindShortestDistance() {
Position pos2;
position.setX(50);
position.setY(50);
// start with the same location so the vector should be 0,0
pos2 = new Position(50, 50);
Vector2D shortestDist = space.findShortestDistanceVector(position, pos2);
assertEquals(shortestDist.getMagnitude(), 0, 0.01);
assertEquals(shortestDist.getXValue(), 0, 0.01);
assertEquals(shortestDist.getYValue(), 0, 0.01);
assertEquals(shortestDist.getAngle(), 0, 0.01);
// start in the upper left corner (on the diagram in the comments)
double expectedMagnitude = Math.sqrt(200);
pos2.setX(40);
pos2.setY(40);
shortestDist = space.findShortestDistanceVector(position, pos2);
assertEquals(shortestDist.getMagnitude(), expectedMagnitude, 0.01);
assertEquals(shortestDist.getXValue(), -10, 0.01);
assertEquals(shortestDist.getYValue(), -10, 0.01);
assertEquals(shortestDist.getAngle(), -(3 * Math.PI) / 4, 0.01);
// upper right quadrant
pos2.setX(60);
pos2.setY(40);
shortestDist = space.findShortestDistanceVector(position, pos2);
assertEquals(shortestDist.getMagnitude(), expectedMagnitude, 0.01);
assertEquals(shortestDist.getXValue(), 10, 0.01);
assertEquals(shortestDist.getYValue(), -10, 0.01);
assertEquals(shortestDist.getAngle(), -(Math.PI / 4), 0.01);
// lower right quadrant
pos2.setX(60);
pos2.setY(60);
shortestDist = space.findShortestDistanceVector(position, pos2);
assertEquals(shortestDist.getMagnitude(), expectedMagnitude, 0.01);
assertEquals(shortestDist.getXValue(), 10, 0.01);
assertEquals(shortestDist.getYValue(), 10, 0.01);
assertEquals(shortestDist.getAngle(), Math.PI / 4, 0.01);
// lower left quadrant
pos2.setX(40);
pos2.setY(60);
shortestDist = space.findShortestDistanceVector(position, pos2);
assertEquals(shortestDist.getMagnitude(), expectedMagnitude, 0.01);
assertEquals(shortestDist.getXValue(), -10, 0.01);
assertEquals(shortestDist.getYValue(), 10, 0.01);
assertEquals(shortestDist.getAngle(), (3 * Math.PI) / 4, 0.01);
}
Aggregations