private synchronized void render(Graphics g) { if (level != null) { int xScroll = (int) (player.pos.x - screen.w / 2); int yScroll = (int) (player.pos.y - (screen.h - 24) / 2); soundPlayer.setListenerPosition((float) player.pos.x, (float) player.pos.y); level.render(screen, xScroll, yScroll); } if (!menuStack.isEmpty()) { menuStack.peek().render(screen); } if (Options.getAsBoolean(Options.DRAW_FPS, Options.VALUE_FALSE)) { Font.defaultFont().draw(screen, texts.FPS(fps), 10, 10); } if (player != null && menuStack.size() == 0) { addHealthBar(screen); addXpBar(screen); addScore(screen); Font font = Font.defaultFont(); if (isMultiplayer) { font.draw(screen, texts.latency(latencyCacheReady() ? "" + avgLatency() : "-"), 10, 20); } } if (isMultiplayer && menuStack.isEmpty()) { chat.render(screen); } g.setColor(Color.BLACK); g.fillRect(0, 0, getWidth(), getHeight()); g.translate((getWidth() - GAME_WIDTH * SCALE) / 2, (getHeight() - GAME_HEIGHT * SCALE) / 2); g.clipRect(0, 0, GAME_WIDTH * SCALE, GAME_HEIGHT * SCALE); if (!menuStack.isEmpty() || level != null) { // render mouse renderMouse(screen, mouseButtons); g.drawImage(screen.image, 0, 0, GAME_WIDTH * SCALE, GAME_HEIGHT * SCALE, null); } }
private void addHealthBar(Screen screen) { int maxIndex = Art.panel_healthBar[0].length - 1; int index = maxIndex - Math.round(player.health * maxIndex / player.maxHealth); if (index < 0) index = 0; else if (index > maxIndex) index = maxIndex; screen.blit(Art.panel_healthBar[0][index], 311, screen.h - 17); screen.blit(Art.panel_heart, 314, screen.h - 24); Font font = Font.defaultFont(); font.draw(screen, texts.health(player.health, player.maxHealth), 335, screen.h - 21); }
private void addXpBar(Screen screen) { int xpSinceLastLevelUp = (int) (player.xpSinceLastLevelUp()); int xpNeededForNextLevel = (int) (player.nettoXpNeededForLevel(player.plevel + 1)); int maxIndex = Art.panel_xpBar[0].length - 1; int index = maxIndex - Math.round(xpSinceLastLevelUp * maxIndex / xpNeededForNextLevel); if (index < 0) index = 0; else if (index > maxIndex) index = maxIndex; screen.blit(Art.panel_xpBar[0][index], 311, screen.h - 32); screen.blit(Art.panel_star, 314, screen.h - 40); Font font = Font.defaultFont(); font.draw(screen, texts.playerLevel(player.plevel + 1), 335, screen.h - 36); }
private void tickChat() { if (chat.isOpen()) { keys.release(); } if (keys.chat.wasReleased()) { chat.open(); } chat.tick(); String msg = chat.getWaitingMessage(); if (msg != null) { synchronizer.addCommand(new ChatCommand(texts.playerName(player.localTeam) + ": " + msg)); } }
private synchronized void render(Graphics g) { if (level != null) { int xScroll = (int) (player.pos.x - screen.w / 2); int yScroll = (int) (player.pos.y - (screen.h - 24) / 2); soundPlayer.setListenerPosition((float) player.pos.x, (float) player.pos.y); level.render(screen, xScroll, yScroll); } if (!menuStack.isEmpty()) { menuStack.peek().render(screen); } boolean drawFPS = Options.get("drawFPS") != null && Options.get("drawFPS").equals("true"); if (drawFPS) { Font.draw(screen, texts.FPS(fps), 10, 10); } if (player != null && menuStack.size() == 0) { Font.draw(screen, texts.health(player.health, player.maxHealth), 340, screen.h - 16); Font.draw(screen, texts.money(player.score), 340, screen.h - 27); Font.draw(screen, texts.nextLevel((int) player.getNextLevel()), 340, screen.h - 38); Font.draw(screen, texts.playerExp((int) player.pexp), 340, screen.h - 49); Font.draw(screen, texts.playerLevel(player.plevel), 340, screen.h - 60); } g.setColor(Color.BLACK); g.fillRect(0, 0, getWidth(), getHeight()); g.translate((getWidth() - GAME_WIDTH * SCALE) / 2, (getHeight() - GAME_HEIGHT * SCALE) / 2); g.clipRect(0, 0, GAME_WIDTH * SCALE, GAME_HEIGHT * SCALE); if (!menuStack.isEmpty() || level != null) { // render mouse renderMouse(screen, mouseButtons); g.drawImage(screen.image, 0, 0, GAME_WIDTH * SCALE, GAME_HEIGHT * SCALE, null); } }
private void addScore(Screen screen) { screen.blit(Art.panel_coin, 314, screen.h - 55); Font font = Font.defaultFont(); font.draw(screen, texts.money(player.score), 335, screen.h - 52); }