ok
This commit is contained in:
@@ -5,7 +5,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import model.SongHandler;
|
||||
import model.gameState.GameOverState;
|
||||
import model.gameState.EndState;
|
||||
import model.gameState.GameState;
|
||||
import model.gameState.HelpState;
|
||||
import model.gameState.MenuState;
|
||||
@@ -32,7 +32,7 @@ public class GameStateManager {
|
||||
MENU_STATE,
|
||||
HELP_STATE,
|
||||
PLAY_STATE,
|
||||
GAMEOVER_STATE,
|
||||
END_STATE,
|
||||
PRE_GAME_STATE
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ public class GameStateManager {
|
||||
gamestates.add(new MenuState(this, sh, sql));
|
||||
gamestates.add(new HelpState(this, sh, sql));
|
||||
gamestates.add(new PlayState(this, sh, sql));
|
||||
gamestates.add(new GameOverState(this, sh, sql));
|
||||
gamestates.add(new EndState(this, sh, sql));
|
||||
gamestates.add(new PreGameState(this,sh, sql));
|
||||
setState(State.TITLE_STATE);
|
||||
}
|
||||
|
||||
+2
-1
@@ -35,6 +35,7 @@ public class Images {
|
||||
images.add(toCompatibleImage(ImageIO.read(Main.class.getResource("/image/gameover.png"))));
|
||||
images.add(toCompatibleImage(ImageIO.read(Main.class.getResource("/image/screenshot.png"))));
|
||||
images.add(toCompatibleImage(ImageIO.read(Main.class.getResource("/image/help.png"))));
|
||||
images.add(toCompatibleImage(ImageIO.read(Main.class.getResource("/image/youwon.png"))));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@@ -45,7 +46,7 @@ public class Images {
|
||||
}
|
||||
|
||||
public enum ImageType {
|
||||
pulse,cursor,pressstart,colorstrike,background,aanwijzers,kast,gameover, screenshot, help
|
||||
pulse,cursor,pressstart,colorstrike,background,aanwijzers,kast,gameover, screenshot, help,youwon
|
||||
}
|
||||
|
||||
public static BufferedImage readImage(File f) {
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,174 @@
|
||||
package model.gameState;
|
||||
|
||||
import image.Images;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Font;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.RenderingHints;
|
||||
import java.awt.Transparency;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.awt.image.VolatileImage;
|
||||
import java.io.IOException;
|
||||
|
||||
import model.GameModel;
|
||||
import model.SongHandler;
|
||||
import model.objects.InfoPanel;
|
||||
import model.objects.highscore.HighscoreName;
|
||||
|
||||
import com.google.zxing.WriterException;
|
||||
|
||||
import control.GameStateManager;
|
||||
import control.GameStateManager.State;
|
||||
import control.button.ButtonEvent;
|
||||
import control.button.ButtonHandler;
|
||||
import control.joystick.JoystickEvent;
|
||||
import control.joystick.JoystickHandler;
|
||||
import data.io.SQLConnector;
|
||||
import data.io.WebcamUploader;
|
||||
|
||||
public class EndState extends GameState {
|
||||
|
||||
BufferedImage end = null;
|
||||
VolatileImage background;
|
||||
Font textFont = new Font("OCR A Extended", Font.BOLD, 70);
|
||||
HighscoreName hsn;
|
||||
int image_x = 0;
|
||||
private boolean uploaded;
|
||||
private BufferedImage QRimage;
|
||||
|
||||
int frame;
|
||||
|
||||
public EndState(GameStateManager gsm, SongHandler sh, SQLConnector sql) {
|
||||
super(gsm, sh, sql);
|
||||
hsn = new HighscoreName(640,717,5,textFont);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
createBackground();
|
||||
ButtonHandler.getButton(1).setColor(GameModel.colors[0]);
|
||||
ButtonHandler.getButton(2).setColor(GameModel.colors[2]);
|
||||
JoystickHandler.REPEAT = true;
|
||||
uploaded = false;
|
||||
// System.out.println("Endgame: "+PlayState.won());
|
||||
if(PlayState.won()){
|
||||
end = Images.getImage(Images.ImageType.youwon);
|
||||
}else{
|
||||
end = Images.getImage(Images.ImageType.gameover);
|
||||
}
|
||||
}
|
||||
|
||||
@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);
|
||||
|
||||
if(end != null){
|
||||
g2.drawImage(end.getSubimage(image_x, 0, 40, 26), 640-122, 400, 245, 130, null);
|
||||
}
|
||||
|
||||
if(!uploaded)
|
||||
hsn.drawName(g2);
|
||||
else if(QRimage != null){
|
||||
g2.drawImage(QRimage, (1280/2)-(QRimage.getWidth()/2), 600,null);
|
||||
//1280 is de breedte van de panel
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buttonPressed(ButtonEvent e) {
|
||||
//System.out.println("Name: "+hsn.getName());
|
||||
switch(e.getButton().getButtonID()){
|
||||
case 0:
|
||||
gsm.setState(State.TITLE_STATE);
|
||||
break;
|
||||
case 1:
|
||||
if(hsn.getName().trim().length() >= 3)
|
||||
{
|
||||
if(!uploaded){
|
||||
int id = sql.addHighscore(sh.getCurrentSong(), sh.getCurrentSongInstance(), hsn.getName(), PlayState.currentScore);
|
||||
try {
|
||||
WebcamUploader.takePictureAndUpload(id);
|
||||
} catch (IOException e2) {
|
||||
e2.printStackTrace();
|
||||
}
|
||||
|
||||
try {
|
||||
QRimage = WebcamUploader.createQRImage("http://portfolio.jancokock.me/colorstrike/message.php?id="+id, 400);
|
||||
} catch (WriterException | IOException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
uploaded = true;
|
||||
|
||||
}else{
|
||||
gsm.setState(State.MENU_STATE);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
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));
|
||||
g2.fillRect(0,0,1280,1024);
|
||||
|
||||
g2.setColor(new Color(0,1,0, 0.7f));
|
||||
g2.fillRect(0,0,100,1024);
|
||||
g2.fillRect(1180,0,100,1024);
|
||||
|
||||
g2.setColor(new Color(1,1,0, 0.7f));
|
||||
g2.fillRect(100,0,100,1024);
|
||||
g2.fillRect(1080,0,100,1024);
|
||||
|
||||
g2.setColor(new Color(1,0,0, 0.7f));
|
||||
g2.fillRect(200,0,100,1024);
|
||||
g2.fillRect(980,0,100,1024);
|
||||
|
||||
g2.setColor(Color.BLACK);
|
||||
g2.setFont(textFont);
|
||||
|
||||
g2.drawString("High Score", 385, 212);
|
||||
g2.drawString(InfoPanel.getTotalHighscore() + "", 390, 342);
|
||||
g2.dispose();
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,6 @@ import java.awt.geom.Point2D;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
import java.util.Iterator;
|
||||
|
||||
import main.Window;
|
||||
import model.SongHandler;
|
||||
import model.drawObjects.Enemy;
|
||||
import model.drawObjects.Player;
|
||||
@@ -17,6 +16,7 @@ import model.drawObjects.PointAnimation;
|
||||
import model.objects.InfoPanel;
|
||||
import model.objects.Path;
|
||||
import model.objects.PlayArea;
|
||||
import model.objects.highscore.Highscore;
|
||||
import audio.ButtonInstance;
|
||||
import audio.ObjectInstance;
|
||||
import control.GameStateManager;
|
||||
@@ -47,6 +47,7 @@ public class PlayState extends GameState {
|
||||
private int joystick_moved = 0;
|
||||
|
||||
private boolean init = false;
|
||||
private static boolean won = false;
|
||||
|
||||
private long oldProgress = 0;
|
||||
|
||||
@@ -62,6 +63,7 @@ public class PlayState extends GameState {
|
||||
@Override
|
||||
public void init() {
|
||||
init = true;
|
||||
won = false;
|
||||
lifePoints = 100;
|
||||
currentScore = 0;
|
||||
comboScore = 0;
|
||||
@@ -71,6 +73,9 @@ public class PlayState extends GameState {
|
||||
enemies_missed = 0;
|
||||
buttons_pressed = 0;
|
||||
joystick_moved = 0;
|
||||
Highscore h = sql.getHighscore(sh.getCurrentSong(), sh.getCurrentSongInstance());
|
||||
if(h != null)
|
||||
infoPanel.init(h.getScore());
|
||||
|
||||
infoPanel.init(sql.getHighscore(sh.getCurrentSong(), sh.getCurrentSongInstance()).getScore());
|
||||
|
||||
@@ -103,8 +108,11 @@ public class PlayState extends GameState {
|
||||
}
|
||||
|
||||
|
||||
if(progress > sh.getCurrentSongInstance().getEndTime() + Enemy.secondsToEnd*1000*2)
|
||||
endGame();
|
||||
if(progress > sh.getCurrentSongInstance().getEndTime() + Enemy.secondsToEnd*1000*2){
|
||||
won = true;
|
||||
endGame();
|
||||
}
|
||||
|
||||
|
||||
oldProgress = progress;
|
||||
|
||||
@@ -166,7 +174,7 @@ public class PlayState extends GameState {
|
||||
if(currentScore == 0)
|
||||
gsm.setState(State.MENU_STATE);
|
||||
else
|
||||
gsm.setState(State.GAMEOVER_STATE);
|
||||
gsm.setState(State.END_STATE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -229,6 +237,7 @@ public class PlayState extends GameState {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
player.setBeat();
|
||||
|
||||
@@ -291,5 +300,9 @@ public class PlayState extends GameState {
|
||||
Path path = area.paths.get(pathID);
|
||||
Enemy e = new Enemy(pathID, 1, color, path);
|
||||
path.getEnemysInPath().addLast(e);
|
||||
}
|
||||
|
||||
public static boolean won(){
|
||||
return won;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,13 @@ package model.objects;
|
||||
|
||||
import image.Images;
|
||||
|
||||
import java.awt.BasicStroke;
|
||||
import java.awt.Color;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Polygon;
|
||||
import java.awt.RenderingHints;
|
||||
import java.awt.Stroke;
|
||||
import java.awt.Transparency;
|
||||
import java.awt.*;
|
||||
import java.awt.geom.GeneralPath;
|
||||
import java.awt.geom.Line2D;
|
||||
@@ -24,7 +31,7 @@ public class PlayArea {
|
||||
private VolatileImage background;
|
||||
private boolean hit = false;
|
||||
private int count = 0,maxCount = 100,pathID = -1;
|
||||
private Stroke stroke = new BasicStroke(5);
|
||||
private Stroke stroke = new BasicStroke(5,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND);
|
||||
private PointAnimation pointAnimation = new PointAnimation();
|
||||
|
||||
private Rectangle2D backgroundPlay = new Rectangle2D.Double(256, 0, 1024, 1024);
|
||||
@@ -125,7 +132,7 @@ public class PlayArea {
|
||||
pointAnimation.draw(g2);
|
||||
g2.setFont(tempFont);
|
||||
}
|
||||
|
||||
|
||||
public Line2D getLine(int index){
|
||||
if(index < 0){
|
||||
index = 0;
|
||||
|
||||
Reference in New Issue
Block a user