HighscoreName.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package model.objects.highscore;
  2. import java.awt.Color;
  3. import java.awt.Font;
  4. import java.awt.Graphics2D;
  5. public class HighscoreName {
  6. private final char[] characters = " abcdefghijklmnopqrstuvwxyz0123456789+-?!".toUpperCase().toCharArray();
  7. private int spacing = 10;
  8. private HighscoreLetter[] letters;
  9. private Font font;
  10. private int index = 0;
  11. public HighscoreName(int x, int y,int nameLength,Font font) {
  12. this.font = font;
  13. letters = new HighscoreLetter[nameLength];
  14. int marge = (int) (Math.floor(nameLength/2)-1)*spacing;
  15. x -= (double)HighscoreLetter.charLength*(nameLength/2.0) + marge;
  16. for(int i = 0; i < letters.length; i++){
  17. letters[i] = new HighscoreLetter(characters, x+(HighscoreLetter.charLength*i)+(spacing*i), y);
  18. }
  19. }
  20. public void drawName(Graphics2D g2){
  21. g2.setFont(font);
  22. for(int i = 0; i < letters.length; i++){
  23. if(i == index){
  24. g2.setColor(Color.RED);
  25. }else{
  26. g2.setColor(Color.BLACK);
  27. }
  28. letters[i].draw(g2);
  29. }
  30. }
  31. public void left(){
  32. index--;
  33. if(index < 0){
  34. index = letters.length-1;
  35. }
  36. }
  37. public void right(){
  38. index++;
  39. index %= letters.length;
  40. }
  41. public void up(){
  42. letters[index].up();
  43. }
  44. public void down(){
  45. letters[index].down();
  46. }
  47. public String getName(){
  48. String name = "";
  49. for(int i = 0; i < letters.length; i++){
  50. name += letters[i].getCurrentString();
  51. }
  52. return name;
  53. }
  54. }