예제 #1
0
 public void update(float delta) {
   // we dont have an idle animation, so we just dont animate until we need to
   if (isExecuting) {
     animationState.update(delta);
     animationState.apply(skeleton);
     skeleton.updateWorldTransform();
   }
 }
예제 #2
0
  @Override
  public void act(float delta) {
    super.act(delta);

    skeleton.setX(getX());
    skeleton.setY(getY());
    skeleton.getRootBone().setScaleX(getScaleX());
    skeleton.getRootBone().setScaleY(getScaleY());
    animationState.update(delta);
    animationState.apply(skeleton);
    skeleton.updateWorldTransform();
  }
예제 #3
0
  public void updateTitle(float delta) {
    // System.out.println("update title");
    batch.begin();
    switch (level) {
      case 0:
        batch.draw(swiat00tlo, 0, 0);
        break;
      case 1:
        batch.draw(swiat01tlo, 0, 0);
        break;
      case 2:
        batch.draw(swiat02tlo, 0, 0);
        break;
      case 3:
        batch.draw(swiat03tlo, 0, 0);
        break;
    }
    // total power numbers
    font.draw(batch, "total: ", 35, 100);
    font.draw(batch, pulaGracza + "", 50, 70, 50, Align.center, false);
    font.draw(batch, "total: ", 1160, 100);
    font.draw(batch, pulaPrzeciwnika + "", 1175, 70, 50, Align.center, false);

    // actual hp
    font.draw(
        batch,
        game.player.playerHp + "",
        playerIcon.getX() - 25,
        playerIcon.getY() + 260,
        50,
        Align.center,
        false);

    if (enemys.size > 0) {
      font.draw(
          batch, enemys.peek().getHp() + "", enemys.peek().getX() - 15, enemys.peek().getY() + 260);
    }

    batch.end();
    // draw kotara
    batch.begin();
    kotaraState.update(Gdx.graphics.getDeltaTime());
    kotaraState.apply(kotaraSkeleton);
    kotaraSkeleton.updateWorldTransform();
    sr.draw(batch, kotaraSkeleton);
    batch.end();
    // sprawdz czy kotara sie odslonila
    if (kotaraState.getCurrent(0) == null) {
      currentState = GameState.MAP;
    }
    stage.act(delta);
    stage.draw();
  }
예제 #4
0
 public void updateMap(float delta) {
   // System.out.println("update map");
   // draw kotara
   batch.begin();
   kotaraState.update(Gdx.graphics.getDeltaTime());
   kotaraState.apply(kotaraSkeleton);
   kotaraSkeleton.updateWorldTransform();
   sr.draw(batch, kotaraSkeleton);
   batch.end();
   stage.act(delta);
   stage.draw();
 }
예제 #5
0
  @Override
  public void draw(Batch batch, float parentAlpha) {
    super.draw(batch, parentAlpha);
    batch.end();
    batch.begin();
    state.update(Gdx.graphics.getDeltaTime());
    state.apply(
        skeleton); // Poses skeleton using current animations. This sets the bones' local SRT.
    skeleton.updateWorldTransform(); // Uses the bones' local SRT to compute their world SRT.

    renderer.draw(batch, skeleton);
    batch.end();
    batch.begin();
    batch.draw(texture, this.getX(), this.getY() + 20f);
  }
  public void render() {
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    float delta = Gdx.graphics.getDeltaTime();

    // Draw skeleton origin lines.
    ShapeRenderer shapes = debugRenderer.getShapeRenderer();
    if (state != null) {
      shapes.setColor(Color.DARK_GRAY);
      shapes.begin(ShapeType.Line);
      shapes.line(skeleton.x, -99999, skeleton.x, 99999);
      shapes.line(-99999, skeleton.y, 99999, skeleton.y);
      shapes.end();
    }

    if (skeleton != null) {
      // Reload if skeleton file was modified.
      if (reloadTimer <= 0) {
        lastModifiedCheck -= delta;
        if (lastModifiedCheck < 0) {
          lastModifiedCheck = checkModifiedInterval;
          long time = skeletonFile.lastModified();
          if (time != 0 && lastModified != time) reloadTimer = reloadDelay;
        }
      } else {
        reloadTimer -= delta;
        if (reloadTimer <= 0) {
          loadSkeleton(skeletonFile);
          ui.toast("Reloaded.");
        }
      }

      // Pose and render skeleton.
      state.getData().setDefaultMix(ui.mixSlider.getValue());
      renderer.setPremultipliedAlpha(ui.premultipliedCheckbox.isChecked());

      skeleton.setFlip(ui.flipXCheckbox.isChecked(), ui.flipYCheckbox.isChecked());
      skeleton.setPosition(skeletonX, skeletonY);

      delta = Math.min(delta, 0.032f) * ui.speedSlider.getValue();
      skeleton.update(delta);
      state.update(delta);
      state.apply(skeleton);
      skeleton.updateWorldTransform();

      batch.setColor(Color.WHITE);
      batch.begin();
      renderer.draw(batch, skeleton);
      batch.end();

      debugRenderer.setBones(ui.debugBonesCheckbox.isChecked());
      debugRenderer.setRegionAttachments(ui.debugRegionsCheckbox.isChecked());
      debugRenderer.setBoundingBoxes(ui.debugBoundingBoxesCheckbox.isChecked());
      debugRenderer.setMeshHull(ui.debugMeshHullCheckbox.isChecked());
      debugRenderer.setMeshTriangles(ui.debugMeshTrianglesCheckbox.isChecked());
      debugRenderer.setPaths(ui.debugPathsCheckbox.isChecked());
      debugRenderer.draw(skeleton);
    }

    if (state != null) {
      // AnimationState status.
      status.setLength(0);
      for (int i = 0, n = state.getTracks().size; i < n; i++) {
        TrackEntry entry = state.getTracks().get(i);
        if (entry == null) continue;
        status.append(i);
        status.append(": [LIGHT_GRAY]");
        status(entry);
        status.append("[WHITE]");
        status.append(entry.animation.name);
        status.append('\n');
      }
      ui.statusLabel.setText(status);
    }

    // Render UI.
    ui.render();

    // Draw indicator lines for animation and mix times.
    if (state != null) {
      TrackEntry entry = state.getCurrent(0);
      if (entry != null) {
        shapes.begin(ShapeType.Line);

        float percent = entry.getAnimationTime() / entry.getAnimationEnd();
        float x = ui.window.getRight() + (Gdx.graphics.getWidth() - ui.window.getRight()) * percent;
        shapes.setColor(Color.CYAN);
        shapes.line(x, 0, x, 12);

        percent =
            entry.getMixDuration() == 0
                ? 1
                : Math.min(1, entry.getMixTime() / entry.getMixDuration());
        x = ui.window.getRight() + (Gdx.graphics.getWidth() - ui.window.getRight()) * percent;
        shapes.setColor(Color.RED);
        shapes.line(x, 0, x, 12);

        shapes.end();
      }
    }
  }
예제 #7
0
  public void updateArena(float delta) {

    // kowadlo
    if (kowadlo.isDropped() && kowadlo.getY() == 190) {

      enemys.peek().setDeleted(true);
      kowadlo.setPosition(1050, 900);
      kowadlo.setDropped(false);
    }

    // gameover, zapraklo hp playerowi
    if (game.player.playerHp <= 0) {
      // killEnemy();
      fadeOutArena();
    }

    // zabiles wszystkie enemysy
    if (enemys.size <= 0) {
      // generujEnemys();
      fadeOutArena();
    }

    batch.begin();
    switch (level) {
      case 0:
        batch.draw(swiat00tlo, 0, 0);
        break;
      case 1:
        batch.draw(swiat01tlo, 0, 0);
        break;
      case 2:
        batch.draw(swiat02tlo, 0, 0);
        break;
      case 3:
        batch.draw(swiat03tlo, 0, 0);
        break;
    }
    // total power numbers
    font.draw(batch, "total: ", 35, 100);
    font.draw(batch, pulaGracza + "", 50, 70, 50, Align.center, false);
    font.draw(batch, "total: ", 1160, 100);
    font.draw(batch, pulaPrzeciwnika + "", 1175, 70, 50, Align.center, false);
    batch.end();

    if (heroTurn) {
      checkHeroDices();
    } else {
      generateEnemyDices();
    }

    stageCharacters.act(delta);
    stageCharacters.draw();

    batch.begin();

    // wypisywanie actual hp
    font.draw(
        batch,
        game.player.playerHp + "",
        playerIcon.getX() - 25,
        playerIcon.getY() + 260,
        50,
        Align.center,
        false);

    if (enemys.size > 0) {
      font.draw(
          batch, enemys.peek().getHp() + "", enemys.peek().getX() - 15, enemys.peek().getY() + 260);
    }
    batch.end();

    // rysowanie paskow hp
    shpr.begin(ShapeType.Filled);
    playerIcon.renderHp(shpr);
    if (enemys.size > 0) {
      enemys.peek().renderHp(shpr);
    }
    shpr.end();

    // draw kotara
    batch.begin();
    kotaraState.update(Gdx.graphics.getDeltaTime());
    kotaraState.apply(kotaraSkeleton);
    kotaraSkeleton.updateWorldTransform();
    sr.draw(batch, kotaraSkeleton);
    batch.end();
    batch.begin();
    // turn info
    if (heroTurn) {
      font.draw(batch, "TURA GRACZA", 50, 700);
    } else {
      font.draw(batch, "TURA OBCYCH", 1050, 700);
    }
    // status przeciwnikow
    font.draw(batch, enemys.size + "", 600, 700, 50, Align.center, false);
    // kowadlo.draw(batch);
    batch.end();
    stage.act(delta);
    stage.draw();

    // check for deleting enemy from quest

    for (int i = 0; i < enemys.size; i++) {
      if (enemys.get(i).isDeleted()) {
        enemys.get(i).remove();
        enemys.removeIndex(i);
        if (enemys.size > 0) {
          if (enemys.size >= 45) {
            game.player.playerHp = game.player.playerHp + 10;
            playerIcon.setHp(game.player.playerHp);
          }
          showEnemy();
        }
      }
    }
  }