Search in sources :

Example 46 with Position

use of spacesettlers.utilities.Position 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 47 with Position

use of spacesettlers.utilities.Position in project spacesettlers by amymcgovern.

the class TestToroidal2DPhysics method setUp.

@Before
public void setUp() throws Exception {
    position = new Position(0, 0, 0);
    height = 480;
    width = 640;
    space = new Toroidal2DPhysics(height, width, timestep);
}
Also used : Position(spacesettlers.utilities.Position) Toroidal2DPhysics(spacesettlers.simulator.Toroidal2DPhysics) Before(org.junit.Before)

Example 48 with Position

use of spacesettlers.utilities.Position 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 49 with Position

use of spacesettlers.utilities.Position in project spacesettlers by amymcgovern.

the class TestToroidal2DPhysics method testGetRandomFreeLocationInRegion.

@Test
public void testGetRandomFreeLocationInRegion() {
    int numTries = 1000;
    Random rand = new Random();
    double maxDistance = 100;
    int freeRadius = 10;
    Position center = new Position(0, 0);
    for (int i = 0; i < numTries; i++) {
        Position position = space.getRandomFreeLocationInRegion(rand, freeRadius, 0, 0, maxDistance);
        double dist = space.findShortestDistance(center, position);
        if (dist > maxDistance) {
            System.out.println(position);
        }
        assertTrue(dist <= maxDistance);
    }
}
Also used : Random(java.util.Random) Position(spacesettlers.utilities.Position) Test(org.junit.Test)

Example 50 with Position

use of spacesettlers.utilities.Position in project spacesettlers by amymcgovern.

the class TestToroidal2DPhysics method testToroidalWrap.

@Test
public void testToroidalWrap() {
    Position position = new Position(0, 0);
    // try from the 0,0 position (which should not wrap)
    space.toroidalWrap(position);
    assertEquals(position.getX(), 0, 0);
    assertEquals(position.getY(), 0, 0);
    // now wrap from negative
    position.setX(-100);
    position.setY(-100);
    space.toroidalWrap(position);
    assertEquals(position.getX(), width - 100, 0);
    assertEquals(position.getY(), height - 100, 0);
    // wrap from the right
    position.setX(width + 100);
    position.setY(height / 2);
    space.toroidalWrap(position);
    assertEquals(position.getX(), 100, 0);
    assertEquals(position.getY(), height / 2, 0);
    // wrap over the top
    position.setX(width / 2);
    position.setY(height + 100);
    space.toroidalWrap(position);
    assertEquals(position.getX(), width / 2, 0);
    assertEquals(position.getY(), 100, 0);
}
Also used : Position(spacesettlers.utilities.Position) Test(org.junit.Test)

Aggregations

Position (spacesettlers.utilities.Position)54 Test (org.junit.Test)28 Vector2D (spacesettlers.utilities.Vector2D)26 Ship (spacesettlers.objects.Ship)18 Movement (spacesettlers.utilities.Movement)16 Asteroid (spacesettlers.objects.Asteroid)14 AbstractAction (spacesettlers.actions.AbstractAction)12 DoNothingAction (spacesettlers.actions.DoNothingAction)12 Base (spacesettlers.objects.Base)11 Beacon (spacesettlers.objects.Beacon)10 MoveToObjectAction (spacesettlers.actions.MoveToObjectAction)9 UUID (java.util.UUID)6 MoveAction (spacesettlers.actions.MoveAction)6 AbstractObject (spacesettlers.objects.AbstractObject)6 AiCore (spacesettlers.objects.AiCore)5 HashMap (java.util.HashMap)4 Team (spacesettlers.clients.Team)2 AbstractActionableObject (spacesettlers.objects.AbstractActionableObject)2 Flag (spacesettlers.objects.Flag)2 ResourcePile (spacesettlers.objects.resources.ResourcePile)2