Пример #1
0
  public void display() {
    GL11.glViewport(0, 0, width, height);
    GL11.glClearColor(0.5f, 0.5f, 0.5f, 0.1f);

    GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);

    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
    float widthHeightRatio = width / height;
    GLU.gluPerspective(45, widthHeightRatio, 1, 1000);
    GLU.gluLookAt(
        player.getX(),
        player.getY(),
        player.getZ(),
        player.getCamX(),
        player.getCamY(),
        player.getCamZ(),
        0,
        1,
        0);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glLoadIdentity();
    // Level

    GL11.glDepthFunc(GL11.GL_LEQUAL);
    GL11.glEnable(GL11.GL_DEPTH_TEST);

    for (byte i = 0; i < level.getSizeX(); i += 1) {
      for (byte j = 0; j < level.getSizeY(); j += 1) {
        for (byte k = 0; k < level.getSizeZ(); k += 1) {
          if (level.getCubeName(i, j, k).equals(Cube.CUBE_BOMB)) {
            objects.DrawCubeBomb(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_EXPLOSION)) {
            objects.DrawCubeExplosion(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_EXPLOSION_HIDE_EXIT)) {
            objects.DrawCubeExplosion(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_EXPLOSION_HIDE_ITEM)) {
            objects.DrawCubeExplosion(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_ITEM_HEALTH)) {
            objects.DrawCubeItemHealth(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_ITEM_XTRA_BOMB)) {
            objects.DrawCubeItemXtraBomb(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_ITEM_BOMB_RANGE)) {
            objects.DrawCubeItemBombRange(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_ITEM_BOMB_STRENGTH)) {
            objects.DrawCubeItemBombStrength(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_ITEM_PORTAL)) {
            objects.DrawCubeItemPortal(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_ITEM_DOUBLE_SCORE)) {
            objects.DrawCubeItemDoubleScore(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_SOLID)) {
            objects.DrawCubeSolid(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_OUTSIDE)) {
            objects.DrawCubeOutside(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_OBSTACLE)) {
            objects.DrawCubeObstacle(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_OBSTACLE_HIDE_EXIT)) {
            objects.DrawCubeObstacle(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_EXIT)) {
            objects.DrawCubeExit(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.CUBE_SOLID_RAMP)) {
            objects.DrawCubeRamp(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
            // Menüwürfel
          } else if (level.getCubeName(i, j, k).equals(Cube.MENU_CUBE_NEW_GAME)) {
            objects.DrawMenuCubeNewGame(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.MENU_CUBE_NEW_GAME_GRAVITY)) {
            objects.DrawMenuCubeNewGameGravity(
                i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.MENU_CUBE_EXIT_PROGRAM)) {
            objects.DrawMenuCubeExitProgram(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.MENU_CUBE_MULTI)) {
            objects.DrawMenuCubeMulti(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.MENU_CUBE_SERVER)) {
            objects.DrawMenuCubeServer(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.MENU_CUBE_OPTIONS)) {
            objects.DrawMenuCubeOptions(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          } else if (level.getCubeName(i, j, k).equals(Cube.MENU_CUBE_LOAD_LEVEL)) {
            objects.DrawMenuCubeLoadLevel(i * SIZE_OF_CUBE, j * SIZE_OF_CUBE, k * SIZE_OF_CUBE);
          }
        }
      }
    }
    if (listPlayer != null) {
      for (int i = 0; i < listPlayer.size(); i++) {
        if (listPlayer.get(i).getNumber() != player.getNumber()) {
          objects.DrawPlayer(
              listPlayer.get(i).getX() - (SIZE_OF_CUBE / 2),
              listPlayer.get(i).getY() - (SIZE_OF_CUBE / 2),
              listPlayer.get(i).getZ() - (SIZE_OF_CUBE / 2));
        }
      }
    }

    GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();

    // GL11.glOrtho(-CLIPSIZE, +CLIPSIZE, -CLIPSIZE, +CLIPSIZE, -CLIPSIZE *
    // 100.0f, +CLIPSIZE * 100.0f);
    // GL11.glOrtho(-CLIPSIZE, +CLIPSIZE, -CLIPSIZE, +CLIPSIZE, -CLIPSIZE,
    // +CLIPSIZE);
    GL11.glOrtho(
        -Window.width / 2,
        +Window.width / 2,
        -Window.height / 2,
        +Window.height / 2,
        -CLIPSIZE,
        +CLIPSIZE);

    GL11.glMatrixMode(GL11.GL_MODELVIEW);
    GL11.glLoadIdentity();
    // GL11.glTranslatef(1f, 1f, 0.0f);

    GL11.glDisable(GL11.GL_DEPTH_TEST);

    hud.renderHUD();

    GL11.glFlush();
  }