Merge branch 'develop' of https://github.com/ProjectGroepA2/Arcade into coin

This commit is contained in:
Bilel Bghiel
2015-06-12 11:42:46 +02:00
12 changed files with 526 additions and 238 deletions
+149 -22
View File
@@ -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();
}
+33 -14
View File
@@ -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();