예제 #1
0
  @Override
  protected void drawGLScene() {
    float t_g = tickTimer.getTime();

    // synchro
    if (isSoundEnabled()) {
      modPlayer.stream();
      // System.out.println(modPlayer);

      int ord = modPlayer.getOrd();
      int row = modPlayer.getRow();

      if (row == 0 || firstDraw) {
        firstDraw = false;

        switch (ord) {
          case 0:
            if (!scene.getMapping().isEnabled()) {
              scene.getMapping().setSynchroTime(t_g);
              scene.getMapping().setEnabled(true);
            }
            break;

          case 1:
            scene.getLiner().setEnabled(true);
            break;

          case 2:
            scene.getGlenz().setEnabled(true);
            boolean jumpEnabled = scene.getJump().isEnabled();
            scene.getRez().setEnabled(jumpEnabled);
            scene.getParticles().setEnabled(false);
            scene.getLiner().setEnabled(false);
            scene.getTitle().setEnabled(true);
            if (!scene.getZoom().isEnabled()) {
              scene.getZoom().setSynchroTime(t_g);
              scene.getZoom().setEnabled(true);
            }
            break;

          case 4:
            scene.getRez().setEnabled(true);
            scene.getParticles().setEnabled(true);
            scene.getLiner().setEnabled(true);
            if (!scene.getJump().isEnabled()) {
              scene.getJump().setSynchroTime(t_g);
              scene.getJump().setEnabled(true);
            }
            scene.getLiner().setTxtCredits();
            break;

          case 6:
            scene.getRez().setEnabled(false);
            scene.getGlenz().setEnabled(false);
            scene.getLiner().setTxtLoop();
            break;
        }
      }
      if (row % 8 == 0) {
        f_n = 0.25f;
        f_v2 = f_n;
        f_t2 = t_g;
      }
      if (row == 0) {
        f_n = 0.5f;
        f_v1 = f_n;
        f_t1 = t_g;
        f_v2 = 0;
      }
      if ((((row % 8 - 4) == 0) || (row == 60) || (row == 62)) && (ord > 1)) {
        scene.getCube().setJumpAngle(0.0f);
        scene.getCube().setJump(0.5f);
        scene.getCube().setSynchroTime(t_g);
      }
    }

    Color f_c = ColorUtils.safe(f_v1 + f_v2, f_v1 + f_v2, f_v1 + f_v2, 1.0f); // fog color
    if (f_v1 > 0) {
      f_v1 = (float) (f_n - f_n * 2.0 * (t_g - f_t1));
    }
    if (f_v2 > 0) {
      f_v2 = (float) (f_n - f_n * 2.0 * (t_g - f_t2));
    }

    // 3d mode
    scene.init3D();
    scene.draw(f_c, t_g);
  }