InfoPanel.java 1.7 KB

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