GameOverState.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package model.gameState;
  2. import image.Images;
  3. import image.Images.ImageType;
  4. import java.awt.Color;
  5. import java.awt.Font;
  6. import java.awt.Graphics2D;
  7. import java.awt.RenderingHints;
  8. import java.awt.Transparency;
  9. import java.awt.image.BufferedImage;
  10. import java.awt.image.VolatileImage;
  11. import model.GameModel;
  12. import model.SongHandler;
  13. import model.objects.InfoPanel;
  14. import model.objects.highscore.HighscoreName;
  15. import control.GameStateManager;
  16. import control.GameStateManager.State;
  17. import control.button.ButtonEvent;
  18. import control.button.ButtonHandler;
  19. import control.joystick.JoystickEvent;
  20. import control.joystick.JoystickHandler;
  21. import data.io.SQLConnector;
  22. public class GameOverState extends GameState {
  23. BufferedImage gameOver = Images.getImage(ImageType.gameover);
  24. VolatileImage background;
  25. Font textFont = new Font("OCR A Extended", Font.BOLD, 70);
  26. HighscoreName hsn;
  27. int image_x = 0;
  28. int frame;
  29. public GameOverState(GameStateManager gsm, SongHandler sh, SQLConnector sql) {
  30. super(gsm, sh, sql);
  31. hsn = new HighscoreName(640,717,5,textFont);
  32. }
  33. @Override
  34. public void init() {
  35. createBackground();
  36. ButtonHandler.getButton(1).setColor(GameModel.colors[0]);
  37. JoystickHandler.REPEAT = true;
  38. }
  39. @Override
  40. public void update(float factor) {
  41. image_x = ((frame / 5) % 5) * 40;
  42. frame++;
  43. }
  44. @Override
  45. public void draw(Graphics2D g2) {
  46. g2.drawImage(background, 0, 0, 1280, 1024, null);
  47. g2.drawImage(gameOver.getSubimage(image_x, 0, 40, 26), 640-122, 400, 245, 130, null);
  48. hsn.drawName(g2);
  49. }
  50. @Override
  51. public void buttonPressed(ButtonEvent e) {
  52. //System.out.println("Name: "+hsn.getName());
  53. switch(e.getButton().getButtonID()){
  54. case 1:
  55. case 0:
  56. if(hsn.getName().trim().length() >= 3)
  57. {
  58. sql.addHighscore(sh.getCurrentSong(), sh.getCurrentSongInstance(), hsn.getName(), PlayState.currentScore);
  59. gsm.setState(State.MENU_STATE);
  60. }
  61. break;
  62. }
  63. }
  64. @Override
  65. public void buttonReleased(ButtonEvent e) {
  66. }
  67. @Override
  68. public void onJoystickMoved(JoystickEvent e) {
  69. switch(e.getJoystick().getPos()){
  70. case DOWN:
  71. hsn.down();
  72. break;
  73. case LEFT:
  74. hsn.left();
  75. break;
  76. case RIGHT:
  77. hsn.right();
  78. break;
  79. case UP:
  80. hsn.up();
  81. break;
  82. default:
  83. break;
  84. }
  85. }
  86. public void createBackground(){
  87. background = Images.initVolatileImage(1280, 1024, Transparency.OPAQUE);
  88. Graphics2D g2 = background.createGraphics();
  89. RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
  90. g2.setRenderingHints(rh);
  91. g2.setColor(new Color(1,1,1, 0.3f));
  92. g2.fillRect(0,0,1280,1024);
  93. g2.setColor(new Color(0,1,0, 0.7f));
  94. g2.fillRect(0,0,100,1024);
  95. g2.fillRect(1180,0,100,1024);
  96. g2.setColor(new Color(1,1,0, 0.7f));
  97. g2.fillRect(100,0,100,1024);
  98. g2.fillRect(1080,0,100,1024);
  99. g2.setColor(new Color(1,0,0, 0.7f));
  100. g2.fillRect(200,0,100,1024);
  101. g2.fillRect(980,0,100,1024);
  102. g2.setColor(Color.BLACK);
  103. g2.setFont(textFont);
  104. g2.drawString("High Score", 385, 212);
  105. g2.drawString(InfoPanel.getTotalHighscore() + "", 390, 342);
  106. g2.dispose();
  107. }
  108. }