Merge branch 'develop' of https://github.com/ProjectGroepA2/Arcade into coin
This commit is contained in:
+149
-22
@@ -43,10 +43,21 @@ public class MenuState extends GameState {
|
||||
|
||||
int yPosDiffButton = 900;
|
||||
private int difSelect=0;
|
||||
Font textFont2 = new Font("OCR A Extended", Font.BOLD, 50);
|
||||
Font textFont = new Font("OCR A Extended", Font.BOLD, 50);
|
||||
Font textFontSmall = new Font("OCR A Extended", Font.BOLD, 15);
|
||||
BufferedImage aanwijzers = Images.getImage(ImageType.aanwijzers);
|
||||
int index = 0;
|
||||
|
||||
|
||||
|
||||
int kleurButton1 = 0;
|
||||
int kleurButton2 = 1;
|
||||
int kleurButton3 = 2;
|
||||
int kleurButton4 = 3;
|
||||
int kleurButton5 = 4;
|
||||
|
||||
|
||||
|
||||
public MenuState(GameStateManager gsm, SongHandler sh) {
|
||||
super(gsm, sh);
|
||||
buttons = new ArrayList<MenuButton>();
|
||||
@@ -54,23 +65,25 @@ public class MenuState extends GameState {
|
||||
this.songs = sh.getSongs();
|
||||
startanimation = true;
|
||||
subscreen = false;
|
||||
|
||||
buttons.add(new MenuButton(-600, 50,1.7, 0, Color.green, selectedToSong(selected-2) ));
|
||||
buttons.add(new MenuButton(-600, 150, 1.7, 10, Color.BLUE, selectedToSong(selected-1)));
|
||||
buttons.add(new MenuButton(-600, 250, 1.7, 20, Color.red, selectedToSong(selected)));
|
||||
buttons.add(new MenuButton(-600, 350, 1.7, 30, Color.yellow,selectedToSong(selected+1)));
|
||||
buttons.add(new MenuButton(-600, 450, 1.7, 30, Color.WHITE,selectedToSong(selected+2)));
|
||||
buttons.get(2).setSelected(true);
|
||||
|
||||
generateMainScreenBackground();
|
||||
generateSubScreenBackground();
|
||||
}
|
||||
@Override
|
||||
public void init() {
|
||||
ButtonHandler.getButton(1).setColor(GameModel.colors[0]);
|
||||
ButtonHandler.getButton(2).setColor(GameModel.colors[2]);
|
||||
if(subscreen)
|
||||
{
|
||||
ButtonHandler.getButton(1).setColor(GameModel.colors[0]);
|
||||
ButtonHandler.getButton(2).setColor(GameModel.colors[2]);
|
||||
}
|
||||
else
|
||||
{
|
||||
ButtonHandler.getButton(1).setColor(GameModel.colors[0]);
|
||||
|
||||
ButtonHandler.getButton(5).setColor(GameModel.colors[1]);
|
||||
ButtonHandler.getButton(6).setColor(GameModel.colors[4]);
|
||||
}
|
||||
|
||||
ButtonHandler.getButton(5).setColor(GameModel.colors[1]);
|
||||
ButtonHandler.getButton(6).setColor(GameModel.colors[4]);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -85,15 +98,14 @@ public class MenuState extends GameState {
|
||||
}else{
|
||||
previousScreen();
|
||||
}
|
||||
for(MenuButton b:buttons){
|
||||
b.update();
|
||||
}
|
||||
if(selected != oldselected){
|
||||
for(int i = 0; i < buttons.size(); i++){
|
||||
buttons.get(i).setSong(selectedToSong(selected+(i-2)));
|
||||
|
||||
}
|
||||
oldselected = selected;
|
||||
|
||||
|
||||
buttons2.clear();
|
||||
int instanceNr = 0;
|
||||
for(int i = sh.getCurrentSong().getSongs().size(); i>0; i--){
|
||||
@@ -105,10 +117,24 @@ public class MenuState extends GameState {
|
||||
}
|
||||
}
|
||||
index++;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(Graphics2D g2) {
|
||||
|
||||
buttons.clear();
|
||||
buttons.add(new MenuButton(400,250,GameModel.colors[kleurButton1],selectedToSong(selected-2)));
|
||||
buttons.add(new MenuButton(400,390,GameModel.colors[kleurButton2],selectedToSong(selected-1)));
|
||||
buttons.add(new MenuButton(360,525,920,80,GameModel.colors[kleurButton3],selectedToSong(selected)));
|
||||
buttons.add(new MenuButton(400,670,GameModel.colors[kleurButton4],selectedToSong(selected+1)));
|
||||
buttons.add(new MenuButton(400,810,GameModel.colors[kleurButton5],selectedToSong(selected+2)));
|
||||
buttons.get(2).setSelected(true);
|
||||
|
||||
|
||||
g2.setColor(Color.BLACK);
|
||||
Font textFont2 = new Font("OCR A Extended", Font.BOLD, 50);
|
||||
g2.setFont(textFont2);
|
||||
if(!subscreen) {
|
||||
g2.drawImage(mainScreenBackground, 0, 0, 1280,1024,null);
|
||||
for(MenuButton b:buttons){
|
||||
@@ -130,6 +156,7 @@ public class MenuState extends GameState {
|
||||
if(subscreen){ //Screen for Song details
|
||||
if(e.getButton().getButtonID() == 2){
|
||||
subscreen = false;
|
||||
gsm.init();
|
||||
}
|
||||
if(e.getButton().getButtonID() == 1){
|
||||
sh.close();
|
||||
@@ -138,9 +165,8 @@ public class MenuState extends GameState {
|
||||
}else{ //Screen for selecting song
|
||||
if(e.getButton().getButtonID() == 1){
|
||||
subscreen = true;
|
||||
gsm.init();
|
||||
generateSubScreenForeground();
|
||||
}else if(e.getButton().getButtonID() == 2){
|
||||
subscreen = false;
|
||||
}else if(e.getButton().getButtonID() == 5){
|
||||
sh.sort(new SortALPHA());
|
||||
oldselected = 1;
|
||||
@@ -175,14 +201,61 @@ public class MenuState extends GameState {
|
||||
if(difSelect > buttons2.size()-1){
|
||||
difSelect = 0;
|
||||
}
|
||||
|
||||
// System.out.println(difSelect);
|
||||
}
|
||||
sh.set(sh.getCurrentSong().getSongs().get(difSelect));
|
||||
generateSubScreenForeground();
|
||||
}else{ //Screen for selecting song
|
||||
if(e.getJoystick().getPos() == Joystick.Position.DOWN){
|
||||
selected++;
|
||||
|
||||
kleurButton1++;
|
||||
kleurButton1 %= 6;
|
||||
|
||||
kleurButton2++;
|
||||
kleurButton2 %= 6;
|
||||
|
||||
kleurButton3++;
|
||||
kleurButton3 %= 6;
|
||||
|
||||
kleurButton4++;
|
||||
kleurButton4 %= 6;
|
||||
|
||||
kleurButton5++;
|
||||
kleurButton5 %= 6;
|
||||
|
||||
|
||||
|
||||
}else if(e.getJoystick().getPos() == Joystick.Position.UP){
|
||||
selected--;
|
||||
kleurButton1--;
|
||||
if(kleurButton1 < 0){
|
||||
kleurButton1 = 5;
|
||||
}
|
||||
|
||||
kleurButton2--;
|
||||
if(kleurButton2 < 0){
|
||||
kleurButton2 = 5;
|
||||
}
|
||||
|
||||
kleurButton3--;
|
||||
if(kleurButton3 < 0){
|
||||
kleurButton3 = 5;
|
||||
}
|
||||
|
||||
kleurButton4--;
|
||||
if(kleurButton4 < 0){
|
||||
kleurButton4 = 5;
|
||||
}
|
||||
|
||||
kleurButton5--;
|
||||
if(kleurButton5 < 0){
|
||||
kleurButton5 = 5;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
sh.set(songs.indexOf(selectedToSong(selected)));
|
||||
sh.play();
|
||||
@@ -194,7 +267,7 @@ public class MenuState extends GameState {
|
||||
Graphics2D g2 = mainScreenBackground.createGraphics();
|
||||
RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
||||
g2.setRenderingHints(rh);
|
||||
g2.setFont(textFont2);
|
||||
g2.setFont(textFont);
|
||||
g2.setPaint(new GradientPaint(0, 0, new Color(0,0,1, 0.6f),1280,1024 ,new Color(0,0,1, 0.2f)));
|
||||
g2.fillRect(0, 0, 1280, 1024);
|
||||
g2.setPaint(new GradientPaint(0, 0, new Color(1,1,0, 0.6f),1280,1024 ,new Color(0,0,1, 0.2f)));
|
||||
@@ -215,8 +288,28 @@ public class MenuState extends GameState {
|
||||
|
||||
g2.setColor(Color.BLACK);
|
||||
g2.drawString("Main Menu", 32, 60);
|
||||
|
||||
g2.setFont(textFontSmall);
|
||||
|
||||
//select
|
||||
g2.setColor(GameModel.colors[0]);
|
||||
g2.fillOval(20, 900, 30, 30);
|
||||
g2.drawString("Play", 55, 920);
|
||||
|
||||
//letters
|
||||
g2.setColor(GameModel.colors[1]);
|
||||
g2.fillOval(20, 940, 30, 30);
|
||||
g2.drawString("A-Z", 55, 960);
|
||||
|
||||
//most played
|
||||
g2.setColor(GameModel.colors[4]);
|
||||
g2.fillOval(20, 980, 30, 30);
|
||||
g2.drawString("Most Played", 55, 1000);
|
||||
g2.dispose();
|
||||
|
||||
mainScreenBackground.createGraphics();
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void generateSubScreenBackground(){
|
||||
@@ -247,18 +340,52 @@ public class MenuState extends GameState {
|
||||
g2.setComposite(AlphaComposite.SrcOver);
|
||||
g2.setRenderingHints(rh);
|
||||
g2.setColor(Color.BLACK);
|
||||
g2.setFont(textFont2);
|
||||
g2.setFont(textFont);
|
||||
g2.drawString(selectedToSong(selected).getTitle(), 30, 60);
|
||||
|
||||
|
||||
g2.setColor(Color.WHITE);
|
||||
g2.drawString("Overall Highscore: " + "", 30, 200);
|
||||
g2.drawString("Daily Highscore: " + "", 30, 300);
|
||||
g2.drawString("Beats per Minute: " + selectedToSong(selected).getBPM(), 30, 400);
|
||||
g2.drawString("Author: " + selectedToSong(selected).getAuthor(), 30, 200);
|
||||
g2.drawString("Overall Highscore: " + "", 30, 300);
|
||||
g2.drawString("Daily Highscore: " + "", 30, 400);
|
||||
g2.drawString("Personal Highscore: " + "", 30, 500);
|
||||
|
||||
for(DifficultyButton b : buttons2){
|
||||
b.draw(g2);
|
||||
}
|
||||
|
||||
g2.setFont(textFontSmall);
|
||||
|
||||
//play song
|
||||
g2.setColor(GameModel.colors[0]);
|
||||
g2.fillOval(20, 860, 30, 30);
|
||||
g2.drawString("Play", 55, 880);
|
||||
|
||||
//back
|
||||
g2.setColor(GameModel.colors[2]);
|
||||
g2.fillOval(20, 900, 30, 30);
|
||||
g2.drawString("Back", 55, 920);
|
||||
|
||||
//up
|
||||
g2.setColor(Color.BLACK);
|
||||
Polygon p = new Polygon();
|
||||
p.addPoint(35, 940);
|
||||
p.addPoint(20, 960);
|
||||
p.addPoint(50, 960);
|
||||
g2.fillPolygon(p);
|
||||
g2.drawString("Up", 55, 960);
|
||||
|
||||
//down
|
||||
Polygon p2 = new Polygon();
|
||||
p2.addPoint(35, 1000);
|
||||
p2.addPoint(20, 980);
|
||||
p2.addPoint(50, 980);
|
||||
g2.fillPolygon(p2);
|
||||
|
||||
g2.drawString("Down", 55, 1000);
|
||||
|
||||
|
||||
|
||||
g2.dispose();
|
||||
subScreenForeground.createGraphics();
|
||||
}
|
||||
|
||||
@@ -29,11 +29,14 @@ public class PlayState extends GameState {
|
||||
private InfoPanel infoPanel;
|
||||
private Player player;
|
||||
private Stroke stroke;
|
||||
private Stroke borderStroke;
|
||||
|
||||
public static int sizeOfEnemy = 40;
|
||||
public static int currentScore = 0;
|
||||
public static int comboScore = 0;
|
||||
public static double lifePoints = 100;
|
||||
|
||||
private boolean init = false;
|
||||
|
||||
private long oldProgress = 0;
|
||||
|
||||
@@ -43,11 +46,12 @@ public class PlayState extends GameState {
|
||||
area = new PlayArea(256, 1024, 1024, 125);
|
||||
player = new Player(1280 - 1024 + 1024 / 2, 1024 / 2);
|
||||
stroke = new BasicStroke(sizeOfEnemy, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
|
||||
borderStroke = new BasicStroke(sizeOfEnemy+2, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
|
||||
init = true;
|
||||
lifePoints = 100;
|
||||
currentScore = 0;
|
||||
comboScore = 0;
|
||||
@@ -57,14 +61,6 @@ public class PlayState extends GameState {
|
||||
{
|
||||
p.getEnemysInPath().clear();
|
||||
}
|
||||
|
||||
try {
|
||||
Thread.sleep(2000);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
sh.play();
|
||||
|
||||
for (int i = 1; i < ButtonHandler.getButtons().size(); i++) {
|
||||
Button b = ButtonHandler.getButton(i);
|
||||
@@ -72,12 +68,16 @@ public class PlayState extends GameState {
|
||||
}
|
||||
|
||||
ButtonHandler.getButton(1).setColor(sh.getCurrentSongInstance().getButtons().get(0).getColor());
|
||||
|
||||
|
||||
sh.play();
|
||||
init = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(float factor) {
|
||||
|
||||
if(init)
|
||||
return;
|
||||
|
||||
long progress = (long) ((sh.getProgress() / 1000) + (Enemy.secondsToEnd * 1000));
|
||||
|
||||
for (ButtonInstance bu : sh.getCurrentSongInstance().getButtonsBetween(oldProgress, progress)) {
|
||||
@@ -90,11 +90,15 @@ public class PlayState extends GameState {
|
||||
p.addEnemy(ob.getColor(), ob.getDirection(), (int) ob.getLength());
|
||||
}
|
||||
|
||||
|
||||
if(progress > sh.getCurrentSongInstance().getEndTime() + Enemy.secondsToEnd*1000*2)
|
||||
gsm.setState(State.GAMEOVER_STATE);
|
||||
|
||||
// System.out.println(progress - oldProgress + " / " + area.paths.get(player.getIndex()).getEnemysInPath().size());
|
||||
|
||||
oldProgress = progress;
|
||||
|
||||
Enemy closedEnemy = null;
|
||||
player.update(factor);
|
||||
for (Path path : area.paths) {
|
||||
|
||||
@@ -103,13 +107,18 @@ public class PlayState extends GameState {
|
||||
while (enemyIterator.hasNext()) {
|
||||
|
||||
Enemy e = enemyIterator.next();
|
||||
|
||||
// System.out.println("Path: "+e.getIndex()+"\tDistance: "+(Enemy.distanceToOctagon-e.getDistanceFromStart()));
|
||||
if (e.getDistanceFromStart() > Enemy.distanceToOctagon + (sizeOfEnemy * 1.5)) {
|
||||
enemyIterator.remove();
|
||||
lifePoints -= 5;
|
||||
comboScore /= 2;
|
||||
}
|
||||
|
||||
if(closedEnemy == null){
|
||||
closedEnemy = e;
|
||||
}
|
||||
if((Enemy.distanceToOctagon-closedEnemy.getDistanceFromStart()) > (Enemy.distanceToOctagon-e.getDistanceFromStart())){
|
||||
closedEnemy = e;
|
||||
}
|
||||
e.update(factor);
|
||||
}
|
||||
}
|
||||
@@ -125,6 +134,12 @@ public class PlayState extends GameState {
|
||||
}
|
||||
|
||||
infoPanel.updateIPanel();
|
||||
area.count();
|
||||
if(closedEnemy == null){
|
||||
area.pathPainted(-1, null);
|
||||
}else{
|
||||
area.pathPainted(closedEnemy.getIndex(), closedEnemy.getColor());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -134,10 +149,12 @@ public class PlayState extends GameState {
|
||||
g2.setClip(borderRect);
|
||||
area.draw(g2);
|
||||
|
||||
g2.setStroke(stroke);
|
||||
for (Path p : area.paths) {
|
||||
if (p.getEnemysInPath() != null) {
|
||||
for (Enemy enemy : p.getEnemysInPath()) {
|
||||
g2.setStroke(borderStroke);
|
||||
enemy.draw(g2, true);
|
||||
g2.setStroke(stroke);
|
||||
enemy.draw(g2);
|
||||
}
|
||||
}
|
||||
@@ -160,6 +177,8 @@ public class PlayState extends GameState {
|
||||
currentScore += enemy.getDistanceFromStart() - Enemy.distanceToOctagon;
|
||||
comboScore += 5;
|
||||
lifePoints = Math.min(lifePoints+10, 100);
|
||||
area.setHitAreaColor(enemy.getColor());
|
||||
area.hit();
|
||||
enemysInPath.remove();
|
||||
notHit = false;
|
||||
infoPanel.throwACoin();
|
||||
|
||||
Reference in New Issue
Block a user