コード例 #1
0
  public void update(float delta) {
    Entity playerEntity = player.get(0);

    PlayerSteerableComponent psc = cmpsc.get(playerEntity);

    for (int i = 0; i < entities.size(); i++) {
      Entity entity = entities.get(i);

      TalkComponent tc = cmtc.get(entity);
      NonControllablePersonSteerableComponent ncpstc = cmstc.get(entity);
      if (ncpstc.x - 160 < psc.getPosition().x
          && psc.getPosition().x < ncpstc.x + 160
          && ncpstc.y - 210 < psc.getPosition().y
          && psc.getPosition().y < ncpstc.y + 210) {
        layout.setText(font, tc.textToSay);
        float x = ncpstc.x - (layout.width / 2);
        float y = ncpstc.y + layout.height + 15;
        batch.end();
        shapeRenderer.setProjectionMatrix(TwoD.getMain().camera.combined);
        shapeRenderer.begin(ShapeType.Filled);
        shapeRenderer.setColor(Color.WHITE);
        shapeRenderer.rect(x - 13, y + 2, 26 + layout.width, 26 + layout.height);
        shapeRenderer.setColor(Color.BLACK);
        shapeRenderer.rect(x - 10, y + 5, 20 + layout.width, 20 + layout.height);
        shapeRenderer.end();
        batch.begin();
        font.draw(batch, layout, x, y + 25);
      }
    }
  }
コード例 #2
0
  @Test
  public void resetEntityCorrectly() {
    PooledEngine engine = new PooledEngine();

    ComponentCounterListener addedListener = new ComponentCounterListener();
    ComponentCounterListener removedListener = new ComponentCounterListener();

    // force the engine to create a Family so family bits get set
    ImmutableArray<Entity> familyEntities =
        engine.getEntitiesFor(Family.all(PositionComponent.class).get());

    Entity[] entities = new Entity[10];
    final int totalEntities = 10;

    for (int i = 0; i < totalEntities; i++) {
      entities[i] = engine.createEntity();

      entities[i].flags = 5;

      entities[i].componentAdded.add(addedListener);
      entities[i].componentRemoved.add(removedListener);

      entities[i].add(engine.createComponent(PositionComponent.class));
      engine.addEntity(entities[i]);

      assertNotNull(entities[i].componentOperationHandler);
      assertEquals(1, entities[i].getComponents().size());
      assertFalse(entities[i].getFamilyBits().isEmpty());
      assertTrue(familyEntities.contains(entities[i], true));
    }

    assertEquals(totalEntities, addedListener.totalCalls);
    assertEquals(0, removedListener.totalCalls);

    engine.removeAllEntities();

    assertEquals(totalEntities, addedListener.totalCalls);
    assertEquals(totalEntities, removedListener.totalCalls);

    for (int i = 0; i < totalEntities; i++) {
      assertEquals(0, entities[i].flags);
      assertNull(entities[i].componentOperationHandler);
      assertEquals(0, entities[i].getComponents().size());
      assertTrue(entities[i].getFamilyBits().isEmpty());
      assertFalse(familyEntities.contains(entities[i], true));

      entities[i].componentAdded.dispatch(entities[i]);
      entities[i].componentRemoved.dispatch(entities[i]);
    }

    assertEquals(totalEntities, addedListener.totalCalls);
    assertEquals(totalEntities, removedListener.totalCalls);
  }
コード例 #3
0
 @Override
 public void update(float deltaTime) {
   if (counter >= 6 && counter <= 8) {
     getEngine().removeEntity(allEntities.get(2));
   }
   counter++;
 }
コード例 #4
0
 @Override
 public void update(float deltaTime) {
   Entity entity;
   PooledEngine engine = (PooledEngine) getEngine();
   for (int i = 0; i < 10; i++) {
     entity = engine.createEntity();
     assertEquals(0, entity.flags);
     entity.flags = 1;
     entity.add(engine.createComponent(PositionComponent.class));
     engine.addEntity(entity);
   }
   for (int i = 0; i < entities.size(); ++i) {
     entity = entities.get(i);
     engine.removeEntity(entity);
     engine.removeEntity(entity);
   }
 }
コード例 #5
0
  private void updateRunning(float deltaTime) {
    // Implement Pause button check here
    /* See ashley-jumper -> GameScreen -> line 155 */

    ApplicationType appType = Gdx.app.getType();

    float accelX = 0.0f;
    boolean fireMissile = false;
    if (appType == ApplicationType.Android || appType == ApplicationType.iOS) {
      accelX = Gdx.input.getAccelerometerX();
      if (Gdx.input.isTouched()) {
        fireMissile = true;
      }
    } else {
      if (Gdx.input.isKeyPressed(Keys.DPAD_LEFT)) {
        accelX = 5f;
      }
      if (Gdx.input.isKeyPressed(Keys.DPAD_RIGHT)) {
        accelX = -5f;
      }
      if (Gdx.input.isKeyPressed(Keys.F)) {
        fireMissile = true;
      }
    }

    engine.getSystem(DefenderSystem.class).setAccelX(accelX);
    engine.getSystem(DefenderSystem.class).setIsFiring(fireMissile);

    // Check if all aliens are gone
    ImmutableArray<Entity> aliens =
        engine.getEntitiesFor(
            Family.all(
                    AlienComponent.class,
                    BoundsComponent.class,
                    MovementComponent.class,
                    TransformComponent.class,
                    StateComponent.class)
                .get());
    if (aliens.size() == 0) {
      world.state = World.WORLD_STATE_GAME_OVER;
    }
    if (world.state == World.WORLD_STATE_GAME_OVER) {
      state = GAME_OVER;
      pauseSystems();
    }
  }