コード例 #1
0
ファイル: Game.java プロジェクト: redomar/JavaGame
  public void render() {
    BufferStrategy bs = getBufferStrategy();
    if (bs == null) {
      createBufferStrategy(3);
      return;
    }

    int xOffset = (int) getPlayer().getX() - (screen.getWidth() / 2);
    int yOffset = (int) getPlayer().getY() - (screen.getHeight() / 2);

    level.renderTiles(screen, xOffset, yOffset);

    /*
     * for (int x = 0; x < level.width; x++) { int colour = Colours.get(-1,
     * -1, -1, 000); if (x % 10 == 0 && x != 0) { colour = Colours.get(-1,
     * -1, -1, 500); } Font.render((x % 10) + "", screen, 0 + (x * 8), 0,
     * colour, 1); }
     */

    level.renderEntities(screen);
    level.renderProjectileEntities(screen);

    for (int y = 0; y < screen.getHeight(); y++) {
      for (int x = 0; x < screen.getWidth(); x++) {
        int colourCode = screen.getPixels()[x + y * screen.getWidth()];
        if (colourCode < 255) {
          pixels[x + y * WIDTH] = colours[colourCode];
        }
      }
    }

    if (isChangeLevel() == true && getTickCount() % 60 == 0) {
      Game.setChangeLevel(true);
      setChangeLevel(false);
    }

    if (changeLevel == true) {
      print.print("Teleported into new world", PrintTypes.GAME);
      if (getMap() == 1) {
        setMap("/levels/water_level.png");
        if (getDummy() != null) { // Gave nullPointerException(); upon
          // entering new world.
          level.removeEntity(getDummy());
          setNpc(false);
        }
        level.removeEntity(getVendor());
        setMap(2);
      } else if (getMap() == 2) {
        setMap("/levels/custom_level.png");
        level.removeEntity(getDummy());
        setNpc(false);
        level.addEntity(getVendor());
        setMap(1);
      }
      changeLevel = false;
    }

    Graphics g = bs.getDrawGraphics();
    g.drawRect(0, 0, getWidth(), getHeight());
    g.drawImage(image, 0, 0, getWidth(), getHeight() - 30, null);
    status(g, isDevMode(), isClosing());
    // Font.render("Hi", screen, 0, 0, Colours.get(-1, -1, -1, 555), 1);
    g.drawImage(image2, 0, getHeight() - 30, getWidth(), getHeight(), null);
    g.setColor(Color.WHITE);
    g.setFont(font.getSegoe());
    g.drawString(
        "Welcome " + WordUtils.capitalizeFully(player.getSanitisedUsername()), 3, getHeight() - 17);
    g.setColor(Color.ORANGE);

    if (context.getLocale().getCountry().equals("BE")
        || context.getLocale().getCountry().equals("FR")) {
      g.drawString(
          "Press A to quit", (getWidth() / 2) - ("Press A to quit".length() * 3), getHeight() - 17);
    } else {
      g.drawString(
          "Press Q to quit", (getWidth() / 2) - ("Press Q to quit".length() * 3), getHeight() - 17);
    }
    g.setColor(Color.YELLOW);
    g.drawString(time.getTime(), (getWidth() - 58), (getHeight() - 3));
    g.setColor(Color.GREEN);
    if (backgroundMusic.getActive()) {
      g.drawString("MUSIC is ON ", 3, getHeight() - 3);
    }
    g.dispose();
    bs.show();
  }