clean up 'n bugcrushing

This commit is contained in:
Bilel Bghiel
2015-06-19 14:36:40 +02:00
parent 864b6efa52
commit d92cd7333b
16 changed files with 116 additions and 183 deletions
+7 -8
View File
@@ -15,19 +15,18 @@ import control.joystick.JoystickListener;
public class GameControl implements JoystickListener, ButtonListener, ActionListener {
private long lastTime = System.currentTimeMillis();
GameModel model;
GameView view;
GameStateManager gsm;
Timer update;
private GameModel model;
private GameView view;
private GameStateManager gsm;
private Timer update;
public GameControl(final GameModel model, final GameView view,GameStateManager gsm)
{
public GameControl(final GameModel model, final GameView view,GameStateManager gsm) {
this.model = model;
this.view = view;
this.gsm = gsm;
view.setIgnoreRepaint(true);
update = new Timer(1000/60,this);
update.start();
(update = new Timer(1000/60,this)).start();
}
@Override
+9 -8
View File
@@ -20,12 +20,15 @@ import data.io.SQLConnector;
public class GameStateManager {
private List<GameState> gamestates;
public GameState currentState;
private int index = 0;
public int fps;
private float timeOfNoAction = 0,maxTimeToHaveNoAction = 45000;
public GameState currentState;
private SongHandler sh;
private int index = 0;
public int fps;
private float timeOfNoAction = 0,
maxTimeToHaveNoAction = 45000;
public enum State {
TITLE_STATE,
MENU_STATE,
@@ -47,12 +50,10 @@ public class GameStateManager {
{
if (st.ordinal() > 0)
currentState.stopAudio();
currentState = gamestates.get(st.ordinal());
init();
// System.out.println("Current song: "+sh.getCurrentSongInstance());
// sh.set(sh.getCurrentSongInstance());
// sh.play();
}
public void next() {
+15 -18
View File
@@ -12,20 +12,20 @@ import control.joystick.Joystick.Position;
import control.joystick.JoystickHandler;
public class NetworkHandler implements Runnable{
DatagramSocket udp;
String host;
int port;
boolean running;
Thread t;
byte[] send;
byte[] receive;
ButtonHandler bth;
JoystickHandler jth;
private DatagramSocket udp;
private String host;
private int port;
private boolean running;
private Thread t;
private byte[] send,
receive;
private ButtonHandler bth;
private JoystickHandler jth;
public NetworkHandler(String host, int port, ButtonHandler bth, JoystickHandler jth)
{
@@ -62,10 +62,7 @@ public class NetworkHandler implements Runnable{
send(cmd);
}
private void send(String str)
{
}
private void send(String str) { }
public void close()
{
+4 -4
View File
@@ -7,10 +7,10 @@ import control.NetworkHandler;
public class Button {
Color color;
int ledID;
int buttonID;
NetworkHandler ntw;
private Color color;
private int ledID,
buttonID;
private NetworkHandler ntw;
public int pressed;
public Button(int buttonID, int ledID, NetworkHandler ntw)
+6 -14
View File
@@ -20,19 +20,15 @@ import control.NetworkHandler;
public class ButtonHandler implements KeyListener{
List<ButtonListener> listeners;
static List<Button> buttons;
NetworkHandler ntw;
private List<ButtonListener> listeners;
public static List<Button> buttons;
private NetworkHandler ntw;
public ButtonHandler()
{
this.ntw = null;
listeners = new ArrayList<ButtonListener>();
buttons = new ArrayList<Button>();
// if (Window.ON_RASP)
// addGpioListeners();
}
@@ -48,7 +44,6 @@ public class ButtonHandler implements KeyListener{
inputpins.add(gpio.provisionDigitalInputPin(RaspiPin.GPIO_12, "6"));
inputpins.add(gpio.provisionDigitalInputPin(RaspiPin.GPIO_06, "0"));
for(GpioPinDigitalInput p:inputpins){
p.addListener(new GpioPinListenerDigital() {
@Override
@@ -82,12 +77,12 @@ public class ButtonHandler implements KeyListener{
}
public void buttonRelease(Button b) {
if(Window.ON_RASP)
{
if(Window.ON_RASP) {
ntw.setLed(b.getLedID(), b.getColor().getGreen(), b.getColor().getRed(), b.getColor().getBlue());
ntw.show();
}
ButtonEvent e = new ButtonEvent(b, System.currentTimeMillis());
for (ButtonListener bt : listeners)
bt.buttonReleased(e);
}
@@ -161,12 +156,9 @@ public class ButtonHandler implements KeyListener{
public static Button getButton(int id)
{
for(Button b : buttons)
{
if(b.getButtonID() == id)
{
return b;
}
}
return null;
}
+4 -7
View File
@@ -27,8 +27,7 @@ public class SQLConnector
//Start connection with Database
public SQLConnector(String host, String port, String dbName, String userName, String password)
{
try
{
try {
String url = "jdbc:mysql://" + host + ":" + port + "/"+ dbName + "?user="
+ userName
+ "&password="
@@ -36,8 +35,7 @@ public class SQLConnector
Class.forName("com.mysql.jdbc.Driver").newInstance ();
myConn = DriverManager.getConnection(url);
}
catch( SQLException ex)
{
catch( SQLException ex) {
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
@@ -55,6 +53,7 @@ public class SQLConnector
Statement st = executeResultQuery(query);
ResultSet result = null;
List<Highscore> hsc = new ArrayList<Highscore>();
try {
result = st.getResultSet();
} catch (SQLException e1) {
@@ -62,9 +61,7 @@ public class SQLConnector
}
try {
while(result.next())
{
hsc.add(new Highscore(si, result.getString("username"), result.getInt("score"), result.getDate("date").getTime()));
}
} catch (SQLException e) {
e.printStackTrace();
}
@@ -131,7 +128,7 @@ public class SQLConnector
rs.close();
st.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Empty return set");
}
if(id != -1)
+3 -1
View File
@@ -23,7 +23,9 @@ import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
public class WebcamUploader {
public static void takePictureAndUpload(int id) throws IOException{
public static void takePictureAndUpload(int id) throws IOException{
Runtime.getRuntime().exec("streamer -c /dev/video0 -b 16 -o" + System.getProperty( "user.home" ) + "/ColorStrike/picture.jpeg");
HttpURLConnection httpUrlConnection = (HttpURLConnection)new URL("http://178.62.254.153/colorstrike/images/photoupload.php?filename="+id+".jpeg").openConnection();
+1 -2
View File
@@ -31,8 +31,7 @@ public class GameModel {
if (Window.ON_RASP) {
count++;
if(count>15)
{
if(count>15) {
for (int i = 7; i < 54; i++) {
ntw.setLed(i, c.getRed(), c.getGreen(), c.getBlue());
}
+1 -2
View File
@@ -22,7 +22,7 @@ public class SongHandler {
private Song currentSong;
private SongInstance currentSongInstance;
private int currentIndex;
SQLConnector sql;
private SQLConnector sql;
private File dir;
@@ -33,7 +33,6 @@ public class SongHandler {
this.sql = sql;
songs = new ArrayList<Song>();
currentSong = null;
currentSongInstance = null;
currentIndex = 0;
+6 -4
View File
@@ -5,10 +5,13 @@ import java.awt.geom.AffineTransform;
public abstract class DrawObject {
protected AffineTransform transform;
protected double width,height;
protected double width,
height;
protected int index = 0;
public DrawObject() {
transform = new AffineTransform();
}
@@ -20,8 +23,7 @@ public abstract class DrawObject {
public void setIndex(int index){
this.index = index;
}
public abstract void draw(Graphics2D g2);
public abstract void update(float factor);
}
+8 -14
View File
@@ -29,31 +29,26 @@ public class Player extends DrawObject {
}
public void draw(Graphics2D g2){//
subImgX = (indexCursor % 8)*100;
subImgY = (indexCursor / 8)*100;
subImgXBeat = (indexBeat % 9)*100;
subImgX = (indexCursor % 8) * 100;
subImgY = (indexCursor / 8) * 100;
subImgXBeat = (indexBeat % 9 ) * 100;
BufferedImage subImg2 = pulse.getSubimage(subImgXBeat,0,100,100);
g2.drawImage(subImg2, transform, null);
BufferedImage subImg = img.getSubimage(subImgX,subImgY,100,100);
g2.drawImage(subImg, transform, null);
g2.drawImage(subImg, transform, null);
}
public void update(float update){
if(beat){
indexBeat++;
if(indexBeat >= 9)
{
if(indexBeat >= 9) {
indexBeat = 0;
beat = false;
}
}
indexCursor++;
indexCursor%=32;
@@ -68,7 +63,6 @@ public class Player extends DrawObject {
public void setBeat() {
beat = true;
indexBeat = 0;
}
}
+5 -5
View File
@@ -29,11 +29,11 @@ import data.io.WebcamUploader;
public class GameOverState extends GameState {
BufferedImage gameOver = Images.getImage(Images.ImageType.gameover);
VolatileImage background;
Font textFont = new Font("OCR A Extended", Font.BOLD, 70);
HighscoreName hsn;
int image_x = 0;
private BufferedImage gameOver = Images.getImage(Images.ImageType.gameover);
private VolatileImage background;
private Font textFont = new Font("OCR A Extended", Font.BOLD, 70);
private HighscoreName hsn;
private int image_x = 0;
private boolean uploaded;
private BufferedImage QRimage;
+2
View File
@@ -18,6 +18,8 @@ public abstract class GameState {
this.gsm = gsm;
this.sh = sh;
this.sql = sql;
int kleurButton1 = 0;
}
public abstract void init();
+35 -83
View File
@@ -49,6 +49,7 @@ public class MenuState extends GameState {
Font textFont = new Font("OCR A Extended", Font.BOLD, 50);
Font textFontSmall = new Font("OCR A Extended", Font.BOLD, 15);
Font textFont2 = new Font("OCR A Extended", Font.BOLD, 50);
BufferedImage aanwijzers = Images.getImage(ImageType.aanwijzers);
@@ -90,13 +91,11 @@ public class MenuState extends GameState {
}
@Override
public void init() {
if(subscreen)
{
if(subscreen) {
ButtonHandler.getButton(1).setColor(GameModel.colors[0]);
ButtonHandler.getButton(2).setColor(GameModel.colors[2]);
generateSubScreenForeground();
}
else {
} else {
ButtonHandler.getButton(1).setColor(GameModel.colors[0]);
ButtonHandler.getButton(5).setColor(GameModel.colors[1]);
@@ -112,20 +111,14 @@ public class MenuState extends GameState {
if(animationcounter == 5){
startanimation = false;
}
}else if(subscreen){
//nextScreen();
}else{
//previousScreen();
}
if(selected != oldselected){
for(int i = 0; i < buttons.size(); i++){
for(int i = 0; i < buttons.size(); i++)
buttons.get(i).setSong(selectedToSong(selected+(i-2)));
}
oldselected = selected;
}
if(difSelect != oldDifSelect)
{
if(difSelect != oldDifSelect) {
oldDifSelect = difSelect;
generateSubScreenForeground();
}
@@ -143,10 +136,9 @@ public class MenuState extends GameState {
buttons.add(new MenuButton(300,680,GameModel.colors[kleurButton4],selectedToSong(selected+1)));
buttons.add(new MenuButton(300,800,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);
@@ -244,33 +236,21 @@ public class MenuState extends GameState {
}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;
}
if(--kleurButton1 < 0)
kleurButton1 = 5;
if(--kleurButton2 < 0)
kleurButton2 = 5;
if(--kleurButton3 < 0)
kleurButton3 = 5;
if(--kleurButton4 < 0)
kleurButton4 = 5;
if(--kleurButton5 < 0)
kleurButton5 = 5;
}
else if(e.getJoystick().getPos() == Joystick.Position.CENTER)
@@ -301,9 +281,9 @@ public class MenuState extends GameState {
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)));
Polygon triangle2 = new Polygon();
Polygon triangle2 = new Polygon();
triangle2.addPoint(0, 0);
triangle2.addPoint(0, 1024/4+50);
triangle2.addPoint(1280/2+50, 0);
@@ -338,8 +318,6 @@ public class MenuState extends GameState {
g2.dispose();
mainScreenBackground.createGraphics();
}
public void generateSubScreenBackground(){
@@ -384,23 +362,18 @@ public class MenuState extends GameState {
{
highscores = sql.getHighscores(selectedToSong(selected), sh.getCurrentSong().getSongs().get(difSelect));
if(highscores.isEmpty())
{
highscoresFound = false;
}
else
g2.drawString("All Time Highscores", 30, 300);
}
else
g2.drawString("Daily Highscore", 30, 300);
if(highscoresFound)
{
if(highscoresFound) {
HIGHSCORES_TO_DISPLAY = HIGHSCORES_TO_DISPLAY > highscores.size() ? highscores.size() : HIGHSCORES_TO_DISPLAY;
for(int i = 0; i<HIGHSCORES_TO_DISPLAY; i++)
{
for(int i = 0; i<HIGHSCORES_TO_DISPLAY; i++) {
Highscore hi = highscores.get(i);
g2.drawString(hi.getName() + " - " + hi.getScore(), 30, 400 + i*100);
}
}
@@ -443,50 +416,29 @@ public class MenuState extends GameState {
g2.fillPolygon(p2);
g2.drawString("Down", 55, 1000);
g2.dispose();
subScreenForeground.createGraphics();
}
public void buttonInAnimation(int button){
if(button >= 0 && button < buttons.size() ){
if(button >= 0 && button < buttons.size()){
buttons.get(button).setX(buttons.get(button).getX()+40);
if(buttons.get(button).getX() >= 320){
if(buttons.get(button).getX() >= 320)
animationcounter++;
}
if(buttons.get(button).getX() >= -200){
if(buttons.get(button).getX() >= -200)
buttonInAnimation(button+1);
}
}
}
/*
public void nextScreen(){
if(buttons.get(0).getX() > -700){
for(MenuButton b:buttons){
b.setX(b.getX()-100);
}
}
}
public void previousScreen(){
if(buttons.get(0).getX() < 300){
for(MenuButton b:buttons){
b.setX(b.getX()+100);
}
}
}
*/
public Song selectedToSong(int s){
s %= songs.size();
if(s < 0){
if(s < 0)
return songs.get(songs.size()+s);
}else{
else
return songs.get(s);
}
}
}
+9 -9
View File
@@ -21,13 +21,15 @@ import data.io.SQLConnector;
public class TitleState extends GameState {
BufferedImage pressStart = Images.getImage(ImageType.pressstart);
BufferedImage colorStrike = Images.getImage(ImageType.colorstrike);
BufferedImage kast = Images.getImage(ImageType.kast);
VolatileImage background;
Font textFont = new Font("OCR A Extended", Font.BOLD, 15);
Font textFont2 = new Font("OCR A Extended", Font.BOLD, 130);
GradientPaint gp = new GradientPaint(300, 0, new Color(0, 0, 1, 0.6f), 980, 1024, new Color(0, 0, 1, 0.2f));
private BufferedImage pressStart = Images.getImage(ImageType.pressstart),
colorStrike = Images.getImage(ImageType.colorstrike),
kast = Images.getImage(ImageType.kast);
private VolatileImage background;
private Font textFont = new Font("OCR A Extended", Font.BOLD, 15),
textFont2 = new Font("OCR A Extended", Font.BOLD, 130);
private GradientPaint gp = new GradientPaint(300, 0, new Color(0, 0, 1, 0.6f), 980, 1024, new Color(0, 0, 1, 0.2f));
private int index = 0,
@@ -48,7 +50,6 @@ public class TitleState extends GameState {
@Override
public void update(float factor) {
frame++;
indexKast++;
}
@@ -78,7 +79,6 @@ public class TitleState extends GameState {
gsm.setState(State.MENU_STATE);
break;
}
}
@Override
+1 -4
View File
@@ -12,12 +12,9 @@ import control.GameStateManager;
public class GameView extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1939480784205689618L;
GameStateManager gsm;
private GameStateManager gsm;
// Font fpsfont = new Font("OCR A Extended", Font.BOLD, 60);