Search in sources :

Example 36 with Vector2D

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);
}
Also used : Vector2D(spacesettlers.utilities.Vector2D) Position(spacesettlers.utilities.Position) Ship(spacesettlers.objects.Ship) Test(org.junit.Test)

Example 37 with Vector2D

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);
}
Also used : Asteroid(spacesettlers.objects.Asteroid) Vector2D(spacesettlers.utilities.Vector2D) Position(spacesettlers.utilities.Position) Ship(spacesettlers.objects.Ship) Test(org.junit.Test)

Example 38 with Vector2D

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);
}
Also used : Movement(spacesettlers.utilities.Movement) Vector2D(spacesettlers.utilities.Vector2D) Position(spacesettlers.utilities.Position) Test(org.junit.Test)

Example 39 with Vector2D

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);
}
Also used : Movement(spacesettlers.utilities.Movement) Vector2D(spacesettlers.utilities.Vector2D) Position(spacesettlers.utilities.Position) Test(org.junit.Test)

Example 40 with Vector2D

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);
}
Also used : Movement(spacesettlers.utilities.Movement) Vector2D(spacesettlers.utilities.Vector2D) Position(spacesettlers.utilities.Position) Test(org.junit.Test)

Aggregations

Vector2D (spacesettlers.utilities.Vector2D)49 Test (org.junit.Test)33 Position (spacesettlers.utilities.Position)26 Movement (spacesettlers.utilities.Movement)15 Asteroid (spacesettlers.objects.Asteroid)8 Ship (spacesettlers.objects.Ship)8 MoveAction (spacesettlers.actions.MoveAction)4 Before (org.junit.Before)3 AbstractObject (spacesettlers.objects.AbstractObject)3 Toroidal2DPhysics (spacesettlers.simulator.Toroidal2DPhysics)2 HashMap (java.util.HashMap)1 Random (java.util.Random)1 UUID (java.util.UUID)1 AbstractAction (spacesettlers.actions.AbstractAction)1 DoNothingAction (spacesettlers.actions.DoNothingAction)1 RawAction (spacesettlers.actions.RawAction)1 LineGraphics (spacesettlers.graphics.LineGraphics)1 StarGraphics (spacesettlers.graphics.StarGraphics)1 Beacon (spacesettlers.objects.Beacon)1 Flag (spacesettlers.objects.Flag)1