InfoPanel.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package model.objects;
  2. import image.Images;
  3. import java.awt.Color;
  4. import java.awt.Font;
  5. import java.awt.Graphics2D;
  6. import java.awt.RenderingHints;
  7. import java.awt.image.BufferedImage;
  8. import model.gameState.PlayState;
  9. public class InfoPanel {
  10. private String totalHighscore = "XXXXXX";
  11. private int lifePercent;
  12. private int upgradeScore = 0;
  13. private int x, y;
  14. private BufferedImage infoPanel;
  15. public InfoPanel(int x, int y){
  16. this.x = x;
  17. this.y = y;
  18. generateInfoPanel();
  19. updateIPanel();
  20. }
  21. public void updateIPanel() {
  22. totalHighscore = "Score: " + PlayState.currentScore;
  23. lifePercent =+ PlayState.lifePoints;
  24. if(0 <= PlayState.currentScore && PlayState.currentScore <=100) {
  25. if(upgradeScore != PlayState.currentScore){
  26. upgradeScore = PlayState.currentScore;
  27. generateInfoPanel();
  28. }
  29. }
  30. }
  31. private void generateInfoPanel(){
  32. infoPanel = new BufferedImage(1280, 1024, BufferedImage.TYPE_INT_ARGB);
  33. Graphics2D g2 = infoPanel.createGraphics();
  34. RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  35. g2.setRenderingHints(rh);
  36. g2.setColor(Color.BLACK);
  37. g2.fillRect(x, y, 256, 1024);
  38. Font scoreFont = new Font("OCR A Extended", Font.BOLD, 30);
  39. g2.setFont(scoreFont);
  40. g2.setColor(Color.ORANGE);
  41. g2.drawString(totalHighscore, 25, 75);
  42. g2.drawRect(25, 100, 200, 30);
  43. g2.drawRect(25, 300, 200, 700);
  44. g2.setColor(Color.GREEN);
  45. g2.fillRect(25, 100, 2 * lifePercent, 30);
  46. g2.setColor(Color.YELLOW);
  47. g2.fillRect(25, 1000 - 7 * upgradeScore, 200, 0 + 7 * upgradeScore);
  48. infoPanel.createGraphics();
  49. infoPanel = Images.toCompatibleImage(infoPanel);
  50. }
  51. public void draw(Graphics2D g2){
  52. g2.drawImage(infoPanel, 0, 0, 1280,1024,null);
  53. }
  54. }