By gameoverscreen able to typ a name
This commit is contained in:
@@ -8,7 +8,7 @@ import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import model.objects.Highscore;
|
||||
import model.objects.highscore.Highscore;
|
||||
import audio.Song;
|
||||
import audio.SongInstance;
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import java.awt.image.VolatileImage;
|
||||
|
||||
import model.SongHandler;
|
||||
import model.objects.InfoPanel;
|
||||
import model.objects.highscore.HighscoreName;
|
||||
import control.GameStateManager;
|
||||
import control.GameStateManager.State;
|
||||
import control.button.ButtonEvent;
|
||||
@@ -24,15 +25,15 @@ public class GameOverState extends GameState {
|
||||
BufferedImage gameOver = Images.getImage(ImageType.gameover);
|
||||
VolatileImage background;
|
||||
Font textFont = new Font("OCR A Extended", Font.BOLD, 70);
|
||||
|
||||
|
||||
private String endScore = "";
|
||||
HighscoreName hsn;
|
||||
int image_x = 0;
|
||||
|
||||
int frame;
|
||||
|
||||
public GameOverState(GameStateManager gsm, SongHandler sh, SQLConnector sql) {
|
||||
super(gsm, sh, sql);
|
||||
createBackground();
|
||||
hsn = new HighscoreName(640,717,5,textFont);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -41,16 +42,56 @@ public class GameOverState extends GameState {
|
||||
|
||||
@Override
|
||||
public void update(float factor) {
|
||||
|
||||
image_x = ((frame / 5) % 5) * 40;
|
||||
frame++;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(Graphics2D g2) {
|
||||
g2.drawImage(background, 0, 0, 1280, 1024, null);
|
||||
int image_x = ((frame / 5) % 5) * 40;
|
||||
g2.drawImage(gameOver.getSubimage(image_x, 0, 40, 26), 640-122, 512, 245, 130, null);
|
||||
g2.drawImage(background, 0, 0, 1280, 1024, null);
|
||||
g2.drawImage(gameOver.getSubimage(image_x, 0, 40, 26), 640-122, 400, 245, 130, null);
|
||||
hsn.drawName(g2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buttonPressed(ButtonEvent e) {
|
||||
System.out.println("Name: "+hsn.getName());
|
||||
switch(e.getButton().getButtonID()){
|
||||
case 0:
|
||||
gsm.setState(State.MENU_STATE);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@Override
|
||||
public void buttonReleased(ButtonEvent e) {
|
||||
|
||||
}
|
||||
@Override
|
||||
public void onJoystickMoved(JoystickEvent e) {
|
||||
switch(e.getJoystick().getPos()){
|
||||
case DOWN:
|
||||
hsn.down();
|
||||
break;
|
||||
case LEFT:
|
||||
hsn.left();
|
||||
break;
|
||||
case RIGHT:
|
||||
hsn.right();
|
||||
break;
|
||||
case UP:
|
||||
hsn.up();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void createBackground(){
|
||||
background = Images.initVolatileImage(1280, 1024, Transparency.OPAQUE);
|
||||
Graphics2D g2 = background.createGraphics();
|
||||
|
||||
RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
||||
g2.setRenderingHints(rh);
|
||||
g2.setColor(new Color(1,1,1, 0.3f));
|
||||
@@ -73,30 +114,5 @@ public class GameOverState extends GameState {
|
||||
g2.drawString("High Score", 385, 212);
|
||||
g2.drawString(InfoPanel.getTotalHighscore(), 390, 342);
|
||||
g2.dispose();
|
||||
background.createGraphics();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buttonPressed(ButtonEvent e) {
|
||||
|
||||
switch(e.getButton().getButtonID()){
|
||||
case 0:
|
||||
gsm.setState(State.MENU_STATE);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@Override
|
||||
public void buttonReleased(ButtonEvent e) {
|
||||
|
||||
}
|
||||
@Override
|
||||
public void onJoystickMoved(JoystickEvent e) {
|
||||
}
|
||||
|
||||
public void createBackground(){
|
||||
background = Images.initVolatileImage(1280, 1024, Transparency.OPAQUE);
|
||||
Graphics2D g2 = background.createGraphics();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,6 +169,9 @@ public class PlayState extends GameState {
|
||||
|
||||
@Override
|
||||
public void buttonPressed(ButtonEvent e) {
|
||||
if(e.getButton().getButtonID() == 0){
|
||||
lifePoints = 0;
|
||||
}
|
||||
boolean notHit = true;
|
||||
Iterator<Enemy> enemysInPath = area.paths.get(player.getIndex()).getEnemysInPath().iterator();
|
||||
while (enemysInPath.hasNext()) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package model.objects;
|
||||
package model.objects.highscore;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package model.objects.highscore;
|
||||
|
||||
import java.awt.Graphics2D;
|
||||
|
||||
public class HighscoreLetter {
|
||||
|
||||
public static int charLength = 46;
|
||||
private char[] letters;
|
||||
private int x,y,index = 0;
|
||||
|
||||
public HighscoreLetter(char[] letters, int x, int y) {
|
||||
super();
|
||||
this.letters = letters;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
public void draw(Graphics2D g2){
|
||||
charLength = g2.getFontMetrics().stringWidth(letters[index]+"");
|
||||
g2.drawString(letters[index]+"", x, y);
|
||||
g2.drawLine(x, y, x+charLength, y);
|
||||
}
|
||||
|
||||
public void up(){
|
||||
index++;
|
||||
index %= letters.length;
|
||||
}
|
||||
|
||||
public void down(){
|
||||
index--;
|
||||
if(index < 0){
|
||||
index = letters.length-1;
|
||||
}
|
||||
}
|
||||
|
||||
public String getCurrentString(){
|
||||
return letters[index]+"";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package model.objects.highscore;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Font;
|
||||
import java.awt.Graphics2D;
|
||||
|
||||
public class HighscoreName {
|
||||
|
||||
private final char[] characters = " abcdefghijklmnopqrstuvwxyz0123456789†".toUpperCase().toCharArray();
|
||||
private int spacing = 10;
|
||||
private HighscoreLetter[] letters;
|
||||
private Font font;
|
||||
private int index = 0;
|
||||
|
||||
public HighscoreName(int x, int y,int nameLength,Font font) {
|
||||
this.font = font;
|
||||
letters = new HighscoreLetter[nameLength];
|
||||
int marge = (int) (Math.floor(nameLength/2)-1)*spacing;
|
||||
x -= (double)HighscoreLetter.charLength*(nameLength/2.0) + marge;
|
||||
|
||||
System.out.println(x);
|
||||
for(int i = 0; i < letters.length; i++){
|
||||
letters[i] = new HighscoreLetter(characters, x+(HighscoreLetter.charLength*i)+(spacing*i), y);
|
||||
}
|
||||
}
|
||||
|
||||
public void drawName(Graphics2D g2){
|
||||
g2.setFont(font);
|
||||
for(int i = 0; i < letters.length; i++){
|
||||
if(i == index){
|
||||
g2.setColor(Color.RED);
|
||||
}else{
|
||||
g2.setColor(Color.BLACK);
|
||||
}
|
||||
letters[i].draw(g2);
|
||||
}
|
||||
}
|
||||
|
||||
public void left(){
|
||||
index--;
|
||||
if(index < 0){
|
||||
index = letters.length-1;
|
||||
}
|
||||
}
|
||||
|
||||
public void right(){
|
||||
index++;
|
||||
index %= letters.length;
|
||||
}
|
||||
|
||||
public void up(){
|
||||
letters[index].up();
|
||||
}
|
||||
|
||||
public void down(){
|
||||
letters[index].down();
|
||||
}
|
||||
|
||||
public String getName(){
|
||||
String name = "";
|
||||
for(int i = 0; i < letters.length; i++){
|
||||
name += letters[i].getCurrentString();
|
||||
}
|
||||
return name;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user