h
This commit is contained in:
parent
3bdf85da14
commit
ffd419a178
@ -17,7 +17,7 @@ public class highscoreManager implements Runnable{
|
||||
|
||||
public boolean isSleeping;
|
||||
|
||||
public String[] result;
|
||||
public String[][] result;
|
||||
|
||||
public highscoreManager(){
|
||||
status = processing;
|
||||
@ -47,24 +47,86 @@ public class highscoreManager implements Runnable{
|
||||
if(task != none) {
|
||||
status = processing;
|
||||
|
||||
//get high scroes from remote database
|
||||
result = new String[] {};
|
||||
if(task == loadHighscores) {
|
||||
//get high scores from remote database
|
||||
Statement stmt;
|
||||
try {
|
||||
String[][] myResult = new String[30][2];
|
||||
int numOfRows = 0;
|
||||
|
||||
stmt = connect.createStatement();
|
||||
ResultSet rs=stmt.executeQuery("select * from highscore where skillLevel = 0 order by finishingTime");
|
||||
while(rs.next()) {
|
||||
myResult[numOfRows][0] = rs.getString(1);
|
||||
myResult[numOfRows][1] = secondsToString(rs.getInt(2));
|
||||
|
||||
numOfRows++;
|
||||
if(numOfRows == 10)
|
||||
break;
|
||||
}
|
||||
|
||||
numOfRows = 10;
|
||||
rs=stmt.executeQuery("select * from highscore where skillLevel = 1 order by finishingTime");
|
||||
while(rs.next()) {
|
||||
myResult[numOfRows][0] = rs.getString(1);
|
||||
myResult[numOfRows][1] = secondsToString(rs.getInt(2));
|
||||
|
||||
numOfRows++;
|
||||
if(numOfRows == 20)
|
||||
break;
|
||||
}
|
||||
|
||||
numOfRows = 20;
|
||||
rs=stmt.executeQuery("select * from highscore where skillLevel = 2 order by finishingTime");
|
||||
while(rs.next()) {
|
||||
myResult[numOfRows][0] = rs.getString(1);
|
||||
myResult[numOfRows][1] = secondsToString(rs.getInt(2));
|
||||
|
||||
numOfRows++;
|
||||
if(numOfRows == 30)
|
||||
break;
|
||||
}
|
||||
|
||||
result = myResult;
|
||||
|
||||
} catch (SQLException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
status = error;
|
||||
result = null;
|
||||
}
|
||||
}
|
||||
|
||||
status = idle;
|
||||
if(status != error)
|
||||
status = idle;
|
||||
task = none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
isSleeping = true;
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
isSleeping = false;
|
||||
|
||||
counter++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String secondsToString(int pTime) {
|
||||
int min = pTime/60;
|
||||
int sec = pTime-(min*60);
|
||||
|
||||
String strMin = placeZeroIfNeede(min);
|
||||
String strSec = placeZeroIfNeede(sec);
|
||||
return String.format("%s:%s",strMin,strSec);
|
||||
}
|
||||
|
||||
public String placeZeroIfNeede(int number) {
|
||||
return (number >=10)? Integer.toString(number):String.format("0%s",Integer.toString(number));
|
||||
}
|
||||
}
|
||||
|
@ -593,9 +593,8 @@ public class mainThread extends JFrame implements KeyListener, ActionListener, M
|
||||
sleepTime = frameInterval - (System.currentTimeMillis()-lastDraw);
|
||||
|
||||
try {
|
||||
long takeOne = sleepTime/2;
|
||||
|
||||
if(sleepTime > 0) {
|
||||
long takeOne = sleepTime/2;
|
||||
Thread.sleep(takeOne);
|
||||
|
||||
if(capturedMouse && !mouseLeftScreen && !focusLost) {
|
||||
|
@ -1,6 +1,7 @@
|
||||
package gui;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.awt.Image;
|
||||
import java.awt.image.PixelGrabber;
|
||||
import javax.imageio.ImageIO;
|
||||
@ -24,8 +25,8 @@ public class gameMenu {
|
||||
|
||||
public int[] titleImage, lightTankImage, rocketTankImage, stealthTankImage, heavyTankImage;
|
||||
|
||||
public button newGame, unpauseGame, showHelp, showOptions, showHighscores, quitGame, abortGame, easyGame, normalGame, hardGame, quitDifficulty, quitHelpMenu, quitOptionMenu, nextPage, previousPage,
|
||||
enableMouseCapture, disableMouseCapture, enableFogOfWar, disableFogOfWar;
|
||||
public button newGame, unpauseGame, showHelp, showOptions, showHighscores, quitGame, abortGame, easyGame, normalGame, hardGame, quitDifficulty, quitHelpMenu, quitOptionMenu, quitHighscoreMenu, nextPage, previousPage,
|
||||
enableMouseCapture, disableMouseCapture, enableFogOfWar, disableFogOfWar, confirmErrorLoadingHighscore;
|
||||
|
||||
public char[] easyDescription, normalDescription, hardDescription, helpPage1, helpPage2, helpPage3, helpPage4, mouseMode;
|
||||
|
||||
@ -148,6 +149,9 @@ public class gameMenu {
|
||||
quitOptionMenu = new button("quitOptionMenu", "x", 620, 80, 18,16);
|
||||
buttons.add(quitOptionMenu);
|
||||
|
||||
quitHighscoreMenu = new button("quitHighscoreMenu", "x", 570, 80, 18,16);
|
||||
buttons.add(quitHighscoreMenu);
|
||||
|
||||
nextPage = new button("nextPage", "Next Page", 550, 450, 120, 28);
|
||||
buttons.add(nextPage);
|
||||
|
||||
@ -165,6 +169,9 @@ public class gameMenu {
|
||||
|
||||
disableFogOfWar = new button("disableFogOfWar", "Enabled", 545, 215, 80, 25);
|
||||
buttons.add(disableFogOfWar);
|
||||
|
||||
confirmErrorLoadingHighscore = new button("confirmErrorLoadingHighscore", "Ok", 350, 280, 80, 25);
|
||||
buttons.add(confirmErrorLoadingHighscore);
|
||||
}
|
||||
|
||||
|
||||
@ -217,6 +224,7 @@ public class gameMenu {
|
||||
if(!gameStarted) {
|
||||
newGame.display = true;
|
||||
quitGame.display = true;
|
||||
showHighscores.display = true;
|
||||
}else {
|
||||
unpauseGame.display = true;
|
||||
abortGame.display = true;
|
||||
@ -224,7 +232,7 @@ public class gameMenu {
|
||||
|
||||
showHelp.display = true;
|
||||
showOptions.display = true;
|
||||
showHighscores.display = true;
|
||||
|
||||
|
||||
}else if(menuStatus == difficulitySelectionMenu) {
|
||||
if(postProcessingThread.escapeKeyPressed) {
|
||||
@ -330,16 +338,14 @@ public class gameMenu {
|
||||
|
||||
}else if(menuStatus == highscoreMenu) {
|
||||
if(postProcessingThread.escapeKeyPressed) {
|
||||
menuStatus = mainMenu;
|
||||
theHighscoreManager.task = theHighscoreManager.none;
|
||||
if(theHighscoreManager.status == theHighscoreManager.idle) {
|
||||
theHighscoreManager.result = null;
|
||||
}
|
||||
quitHighscoreMenu();
|
||||
|
||||
}else {
|
||||
drawTitle();
|
||||
drawMenuFrame(420, 360);
|
||||
|
||||
textRenderer tRenderer = postProcessingThread.theTextRenderer;
|
||||
|
||||
if(theHighscoreManager.status == theHighscoreManager.processing) {
|
||||
drawLoadingScreen(screen);
|
||||
}else if(theHighscoreManager.status == theHighscoreManager.idle) {
|
||||
@ -347,11 +353,16 @@ public class gameMenu {
|
||||
theHighscoreManager.task = theHighscoreManager.loadHighscores;
|
||||
drawLoadingScreen(screen);
|
||||
}else if(theHighscoreManager.task == theHighscoreManager.none && theHighscoreManager.result != null) {
|
||||
//draw high scores
|
||||
drawHighscore();
|
||||
}else if(theHighscoreManager.isSleeping && theHighscoreManager.result == null) {
|
||||
drawLoadingScreen(screen);
|
||||
}
|
||||
}else if(theHighscoreManager.status == theHighscoreManager.error) {
|
||||
|
||||
tRenderer.drawMenuText(240,250,"Cannot load high scores, try again later.".toCharArray(), screen, 255,255,255,0);
|
||||
confirmErrorLoadingHighscore.display=true;
|
||||
}
|
||||
|
||||
quitHighscoreMenu.display = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -361,9 +372,66 @@ public class gameMenu {
|
||||
|
||||
}
|
||||
|
||||
public void drawHighscore() {
|
||||
|
||||
textRenderer tRenderer = postProcessingThread.theTextRenderer;
|
||||
String[][] result = theHighscoreManager.result;
|
||||
int startRow = 0;
|
||||
//draw high scores
|
||||
if(highscoreLevel == 1) {
|
||||
tRenderer.drawText_outline(280,100,"Highscores for normal difficulty", screen, 0xffffff,0);
|
||||
startRow = 10;
|
||||
}
|
||||
|
||||
tRenderer.drawText_outline(230,130," Rank Player Name Time", screen, 0xf2989d,0);
|
||||
tRenderer.drawText_outline(230,135,"_____________________________________________", screen, 0xaaaaaa,0);
|
||||
|
||||
for(int i = startRow; i < startRow + 10; i++) {
|
||||
int color = 0xbbbbbb;
|
||||
if(i -startRow == 0)
|
||||
color = 0xffe559;
|
||||
if(i -startRow == 1)
|
||||
color = 0xe8e9ea;
|
||||
if(i -startRow == 2)
|
||||
color = 0xc99684;
|
||||
if(i -startRow == 9)
|
||||
tRenderer.drawText_outline(220,160 + (i -startRow)*25, " " + (i -startRow + 1), screen, color,0);
|
||||
else
|
||||
tRenderer.drawText_outline(223,160 + (i -startRow)*25, " " + (i -startRow + 1), screen, color,0);
|
||||
|
||||
if(result[i][0] != null) {
|
||||
int l = (30 - result[i][0].length())/2;
|
||||
|
||||
tRenderer.drawText_outline(230,160 + (i -startRow)*25, " " + result[i][1], screen, color,0);
|
||||
tRenderer.drawText_outline(275 + l*7,160 + (i -startRow)*25, result[i][0], screen, color,0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void drawLoadingScreen(int[] screen) {
|
||||
textRenderer tRenderer = postProcessingThread.theTextRenderer;
|
||||
tRenderer.drawMenuText(82,90,"busy".toCharArray(), screen, 255,255,255,0);
|
||||
|
||||
if(postProcessingThread.frameIndex%50 < 10) {
|
||||
tRenderer.drawMenuText(360,250,"Loading....".toCharArray(), screen, 255,255,255,0);
|
||||
}else if(postProcessingThread.frameIndex%50 >= 10 && postProcessingThread.frameIndex%50 < 20) {
|
||||
tRenderer.drawMenuText(360,250,"Loading".toCharArray(), screen, 255,255,255,0);
|
||||
}else if(postProcessingThread.frameIndex%50 >= 20 && postProcessingThread.frameIndex%50 < 30) {
|
||||
tRenderer.drawMenuText(360,250,"Loading.".toCharArray(), screen, 255,255,255,0);
|
||||
}else if(postProcessingThread.frameIndex%50 >= 30 && postProcessingThread.frameIndex%50 < 40) {
|
||||
tRenderer.drawMenuText(360,250,"Loading..".toCharArray(), screen, 255,255,255,0);
|
||||
}else {
|
||||
tRenderer.drawMenuText(360,250,"Loading...".toCharArray(), screen, 255,255,255,0);
|
||||
}
|
||||
}
|
||||
|
||||
public void quitHighscoreMenu() {
|
||||
menuStatus = mainMenu;
|
||||
theHighscoreManager.task = theHighscoreManager.none;
|
||||
if(theHighscoreManager.status == theHighscoreManager.idle) {
|
||||
theHighscoreManager.result = null;
|
||||
}
|
||||
highscoreLevel = 1;
|
||||
}
|
||||
|
||||
public void updateButtons() {
|
||||
@ -387,6 +455,12 @@ public class gameMenu {
|
||||
currentHelpPage--;
|
||||
}else if(buttons.get(i).name == "showHighscores") {
|
||||
menuStatus = highscoreMenu;
|
||||
if(theHighscoreManager.status == theHighscoreManager.error) {
|
||||
theHighscoreManager.counter = 0;
|
||||
theHighscoreManager.status = theHighscoreManager.idle;
|
||||
}
|
||||
}else if(buttons.get(i).name == "quitHighscoreMenu" || buttons.get(i).name == "confirmErrorLoadingHighscore") {
|
||||
quitHighscoreMenu();
|
||||
}
|
||||
|
||||
postProcessingThread.buttonAction = buttons.get(i).name;
|
||||
|
Loading…
x
Reference in New Issue
Block a user