use of spacesettlers.utilities.Vector2D in project spacesettlers by amymcgovern.
the class TestCollisionHandler method testElasticCollisionsShipsDiagonal.
@Test
public void testElasticCollisionsShipsDiagonal() {
Ship ship1, ship2;
Position ship1Pos = new Position(0, 0, Math.PI / 4);
ship1Pos.setTranslationalVelocity(new Vector2D(2, 2));
ship1 = new Ship("team1", Color.BLUE, ship1Pos);
Position ship2Pos = new Position(10, 10, -Math.PI / 4);
ship2Pos.setTranslationalVelocity(new Vector2D(-10, -10));
ship2 = new Ship("team2", Color.RED, ship2Pos);
collisionHandler.collide(ship1, ship2, space);
assertEquals(ship1.getPosition().getTranslationalVelocityX(), -10, 0.01);
assertEquals(ship1.getPosition().getTranslationalVelocityY(), -10, 0.01);
assertEquals(ship2.getPosition().getTranslationalVelocityX(), 2, 0.01);
assertEquals(ship2.getPosition().getTranslationalVelocityY(), 2, 0.01);
}
use of spacesettlers.utilities.Vector2D in project spacesettlers by amymcgovern.
the class TestCollisionHandler method testElasticCollisionsShipToMoveableAsteroidY.
@Test
public void testElasticCollisionsShipToMoveableAsteroidY() {
Ship ship1;
Asteroid asteroid;
Position ship1Pos = new Position(0, 0, Math.PI / 4);
ship1Pos.setTranslationalVelocity(new Vector2D(0, 20));
ship1 = new Ship("team1", Color.BLUE, ship1Pos);
Position asteroid2Pos = new Position(0, 10, -Math.PI / 4);
asteroid2Pos.setTranslationalVelocity(new Vector2D(0, -10));
asteroid = new Asteroid(asteroid2Pos, false, 10, true, .33, .33, .34);
ship1.setMass(asteroid.getMass());
collisionHandler.collide(ship1, asteroid, space);
assertEquals(ship1.getPosition().getTranslationalVelocityX(), 0, 0.01);
assertEquals(ship1.getPosition().getTranslationalVelocityY(), -10.0, 0.01);
assertEquals(asteroid.getPosition().getTranslationalVelocityX(), 0, 0.01);
assertEquals(asteroid.getPosition().getTranslationalVelocityY(), 20, 0.01);
}
use of spacesettlers.utilities.Vector2D in project spacesettlers by amymcgovern.
the class TestToroidal2DPhysics method testApplyMovementTurnAndMoveFromStop.
@Test
public void testApplyMovementTurnAndMoveFromStop() {
Movement movement = new Movement();
movement.setAngularAccleration(Math.PI / 60);
movement.setTranslationalAcceleration(new Vector2D(10, 10));
position.setOrientation(Math.PI / 4);
double expectedOrientation = (Math.PI / 4) + (Math.PI / 60);
double expectedX = 10;
double expectedY = 10;
Position newPosition = space.applyMovement(position, movement, timestep);
assertEquals(newPosition.getX(), expectedX, 0.01);
assertEquals(newPosition.getY(), expectedY, 0.01);
assertEquals(newPosition.getOrientation(), expectedOrientation, 0.01);
assertEquals(newPosition.getAngularVelocity(), Math.PI / 60, 0.01);
assertEquals(newPosition.getTranslationalVelocityX(), 10, 0.01);
assertEquals(newPosition.getTranslationalVelocityY(), 10, 0.01);
}
use of spacesettlers.utilities.Vector2D in project spacesettlers by amymcgovern.
the class TestToroidal2DPhysics method testApplyTranslationalMovementHorizontalFromStop.
@Test
public void testApplyTranslationalMovementHorizontalFromStop() {
Movement movement = new Movement();
movement.setAngularAccleration(0);
movement.setTranslationalAcceleration(new Vector2D(10, 0));
double expectedX = 10;
double expectedY = 0;
Position newPosition = space.applyMovement(position, movement, timestep);
assertEquals(newPosition.getX(), expectedX, 0.01);
assertEquals(newPosition.getY(), expectedY, 0.01);
assertEquals(newPosition.getOrientation(), 0, 0.01);
assertEquals(newPosition.getAngularVelocity(), 0, 0.01);
assertEquals(newPosition.getTranslationalVelocityX(), 10, 0.01);
assertEquals(newPosition.getTranslationalVelocityY(), 0, 0.01);
}
use of spacesettlers.utilities.Vector2D in project spacesettlers by amymcgovern.
the class TestToroidal2DPhysics method testApplyOrientationMoveFromTurning.
@Test
public void testApplyOrientationMoveFromTurning() {
Movement movement = new Movement();
movement.setAngularAccleration(Math.PI / 180.0);
movement.setTranslationalAcceleration(new Vector2D());
double expectedOrientation = (3.0 * Math.PI) / 180.0;
// first time is from stop
Position newPosition = space.applyMovement(position, movement, timestep);
// second time it is moving already
newPosition = space.applyMovement(newPosition, movement, timestep);
assertEquals(newPosition.getOrientation(), expectedOrientation, 0.01);
assertEquals(newPosition.getAngularVelocity(), Math.PI / 90.0, 0.01);
assertEquals(newPosition.getX(), 0, 0.0);
assertEquals(newPosition.getY(), 0, 0.0);
assertEquals(newPosition.getTranslationalVelocityX(), 0, 0);
assertEquals(newPosition.getTranslationalVelocityY(), 0, 0);
}
Aggregations