Feature/menu

Conflicts:
	audio/AudioPlayer.java
	model/GameModel.java
	model/SongHandler.java
	model/gameState/MenuState.java

Menu now works togheter with the game. A lot of known bugs with audio player
This commit is contained in:
jancoow
2015-06-05 23:17:29 +02:00
74 changed files with 334 additions and 328 deletions
+25 -29
View File
@@ -1,6 +1,8 @@
package audio;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;
@@ -9,6 +11,8 @@ public class AudioPlayer{
private Player clip;
private FileInputStream fis;
private Song s;
private Thread thread;
public AudioPlayer() {
clip = null;
@@ -16,20 +20,22 @@ public class AudioPlayer{
public void setClip(Song s) {
try {
if(clip != null){
if(clip!=null)
clip.close();
}
fis = new FileInputStream(s.getAudio());
clip = new Player(fis);
this.s = s;
} catch (Exception e) {
e.printStackTrace();
}
}
public void play() {
if (clip == null)
return;
new Thread(new Runnable() {
try {
fis = new FileInputStream(s.getAudio());
clip = new Player(fis);
} catch (JavaLayerException | FileNotFoundException e1) {
e1.printStackTrace();
}
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
if(clip != null){
@@ -39,38 +45,28 @@ public class AudioPlayer{
e.printStackTrace();
}
}
}}).start();
}});
thread.start();
}
public void play(final int framePosition) {
if (clip == null)
return;
new Thread(new Runnable() {
@Override
public void run() {
if(clip != null){
try {
clip.play(framePosition);
} catch (JavaLayerException e) {
e.printStackTrace();
}
}
}}).start();
}
public void close() {
if(clip != null)
{
clip.close();
clip = null;
fis = null;
try {
if(fis != null)
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
if(thread != null && thread.isAlive())
thread.stop();
}
}
public long getProgress()
{
if(clip != null)
+1 -1
View File
@@ -28,7 +28,7 @@ public class Song {
private BufferedImage backgroundImage;
private BufferedImage bannerImage;
private List<SongInstance> songs;
public List<SongInstance> songs;
public Song() {
title = "";
+2 -5
View File
@@ -6,9 +6,8 @@ import java.util.List;
import model.SongHandler;
import model.gameState.GameState;
import model.gameState.MenuState;
import model.gameState.TitleState;
import model.gameState.PickSongState;
import model.gameState.PlayState;
import model.gameState.TitleState;
public class GameStateManager {
@@ -19,8 +18,7 @@ public class GameStateManager {
public enum State {
TITLE_STATE,
MENU_STATE,
PLAY_STATE,
PICKSONG_STATE
PLAY_STATE
}
public GameStateManager(SongHandler sh){
@@ -28,7 +26,6 @@ public class GameStateManager {
gamestates.add(new TitleState(this, sh));
gamestates.add(new MenuState(this, sh));
gamestates.add(new PlayState(this, sh));
gamestates.add(new PickSongState(this, sh));
currentState = gamestates.get(0);
}
+2 -1
View File
@@ -24,6 +24,7 @@ public class Images {
images.add(ImageIO.read(Main.class.getResource("/image/pressstart.png")));
images.add(ImageIO.read(Main.class.getResource("/image/colorstrike.png")));
images.add(ImageIO.read(Main.class.getResource("/image/background.png")));
images.add(ImageIO.read(Main.class.getResource("/image/aanwijzers4sho.png")));
} catch (IOException e) {
e.printStackTrace();
}
@@ -34,7 +35,7 @@ public class Images {
}
public enum ImageType {
player,player2,pressstart,colorstrike,background
player,player2,pressstart,colorstrike,background,aanwijzers
}
public static BufferedImage readImage(File f) {
Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

+1 -1
View File
@@ -7,7 +7,7 @@ import control.button.ButtonHandler;
public class GameModel{
public static Color[] colors = {Color.MAGENTA,Color.RED,Color.GREEN,Color.YELLOW,Color.CYAN,Color.WHITE};
public static Color[] colors = {Color.GREEN,Color.YELLOW,Color.RED,Color.MAGENTA,Color.CYAN,Color.WHITE};
private GameStateManager gsm;
private SongHandler sh;
+3 -12
View File
@@ -54,11 +54,8 @@ public class SongHandler {
}
public void set(int i)
{
if(currentIndex != i)
{
currentIndex = i;
updatePlayer();
}
currentIndex = i;
updatePlayer();
}
public void set(SongInstance si)
{
@@ -112,11 +109,5 @@ public class SongHandler {
p.play();
}
public void play(boolean b)
{
if(b)
{
p.play((int)currentSong.getSampleStart()*10);
}
}
}
+204 -42
View File
@@ -4,66 +4,195 @@ import image.Images;
import image.Images.ImageType;
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
import com.sun.glass.ui.EventLoop.State;
import model.GameModel;
import model.SongHandler;
import model.objects.DifficultyButton;
import model.objects.MenuButton;
import audio.Song;
import audio.SongInstance;
import control.GameStateManager;
import control.GameStateManager.State;
import control.button.ButtonEvent;
import control.joystick.Joystick;
import control.joystick.JoystickEvent;
public class MenuState extends GameState {
private ArrayList<MenuButton> buttons;
private ArrayList<DifficultyButton> buttons2;
private int selected, oldselected;
private List<Song> songs;
private Polygon triangle,triangle2;
int frame = 0;
int maxFrames = 2560;
int animationcounter;
ArrayList<MenuButton> buttons;
int selected;
private int animationcounter;
private boolean subscreen, startanimation;
int yPosDiffButton = 900;
private int difSelect=0;
BufferedImage aanwijzers = Images.getImage(ImageType.aanwijzers);
int index = 0;
public MenuState(GameStateManager gsm, SongHandler sh) {
super(gsm, sh);
buttons = new ArrayList<MenuButton>();
buttons.add(new MenuButton(-600, 50,1.7, "Quick play", 0, Color.green));
buttons.add(new MenuButton(-600, 150, 1.7, "Pick song", 10, new Color(60,60,255)));
buttons.add(new MenuButton(-600, 250, 1.7, "Best played", 20, Color.red));
buttons.add(new MenuButton(-600, 350, 1.7, "Last played", 30, Color.yellow));
buttons2 = new ArrayList<DifficultyButton>();
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);
}
@Override
public void init() {
// TODO Auto-generated method stub
sh.play(true);
}
@Override
public void update(float factor) {
buttonInAnimation(animationcounter);
if(startanimation){
buttonInAnimation(animationcounter);
if(animationcounter == 5){
startanimation = false;
}
}else if(subscreen){
nextScreen();
}else{
previousScreen();
}
for(MenuButton b:buttons){
b.update();
}
frame++;
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--){
if(sh.getCurrentSong().getSongs().size() == 0)
continue;
SongInstance si = sh.getCurrentSong().getSongs().get(i-1);
buttons2.add(new DifficultyButton(yPosDiffButton-instanceNr,si.getDifficulty(), GameModel.colors[i-1]));
instanceNr += 100;
}
}
index++;
}
@Override
public void draw(Graphics2D g2) {
g2.drawImage(Images.getImage(ImageType.background), -640 -((frame * 4) % maxFrames), 0, 5120, 1024, null);
for(MenuButton b:buttons){
b.draw(g2);
}
g2.setColor(Color.BLACK);
Font textFont2 = new Font("OCR A Extended", Font.BOLD, 50);
g2.setFont(textFont2);
if(!subscreen) {
GradientPaint gp = new GradientPaint(0, 0, new Color(0,0,1, 0.6f),1280,1024 ,new Color(0,0,1, 0.2f));
g2.setPaint(gp);
g2.fillRect(0, 0, 1280, 1024);
triangle2 = new Polygon();
triangle2.addPoint(0, 0);
triangle2.addPoint(0, 1024/4+50);
triangle2.addPoint(1280/2+50, 0);
triangle = new Polygon();
triangle.addPoint(0, 0);
triangle.addPoint(0, 1024/4);
triangle.addPoint(1280/2, 0);
for(MenuButton b:buttons){
b.draw(g2);
}
GradientPaint gp2 = new GradientPaint(0, 0, new Color(1,1,0, 0.6f),1280,1024 ,new Color(0,0,1, 0.2f));
g2.setPaint(gp2);
g2.fillPolygon(triangle2);
g2.setColor(Color.ORANGE);
g2.fillPolygon(triangle);
g2.setColor(Color.BLACK);
g2.drawString("Main Menu", 30, 60);
}
if(subscreen) {
//g2.setColor(Color.BLACK);
GradientPaint gp3 = new GradientPaint(640, 1024/8,Color.BLUE,640,1024 ,Color.WHITE);
g2.setPaint(gp3);
g2.fillRect(0, 0, 1280, 1024);
GradientPaint gp4 = new GradientPaint(0, 0,new Color(1,1,0,0.6f),1280,1024,new Color(1,1,1,0.2f));
g2.setPaint(gp4);
g2.fillRect(0,128,1280,25);
g2.setColor(Color.ORANGE);
g2.fillRect(0, 0, 1280, 1024/8);
g2.setColor(Color.BLACK);
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);
for(DifficultyButton b : buttons2){
b.draw(g2);
}
int y = (index/5)*75;
int x = (index%5)*75;
index%=25;
BufferedImage subImg = aanwijzers.getSubimage(x, y, 75, 75);
g2.drawImage(subImg, 825,900 - difSelect*100,75,75,null);
}
}
@Override
public void buttonPressed(ButtonEvent e) {
if(e.getButton().getButtonID() == 1){
for(MenuButton b:buttons){
if(b.isSelected()){
gsm.setState(State.PLAY_STATE);
}
if(subscreen){ //Screen for Song details
if(e.getButton().getButtonID() == 2){
subscreen = false;
}
if(e.getButton().getButtonID() == 1){
sh.close();
gsm.setState(control.GameStateManager.State.PLAY_STATE);
}
}else{ //Screen for selecting song
if(e.getButton().getButtonID() == 1){
subscreen = true;
}else if(e.getButton().getButtonID() == 2){
subscreen = false;
}
}
}
@Override
@@ -72,26 +201,35 @@ public class MenuState extends GameState {
}
@Override
public void onJoystickMoved(JoystickEvent e) {
if(e.getJoystick().getPos() == Joystick.Position.DOWN){
selected++;
selected %= buttons.size();
for(int i = 0; i < buttons.size(); i++){
if(selected == i){
buttons.get(i).setSelected(true);
}else{
buttons.get(i).setSelected(false);
if(subscreen){
if(e.getJoystick().getPos() == Joystick.Position.DOWN){
difSelect--;
if(difSelect < 0){
difSelect += buttons2.size();
}
}
}else if(e.getJoystick().getPos() == Joystick.Position.UP){
selected--;
if(selected < 0) selected = buttons.size()-1;
for(int i = 0; i < buttons.size(); i++){
if(selected == i){
buttons.get(i).setSelected(true);
}else{
buttons.get(i).setSelected(false);
// System.out.println(difSelect);
}else if(e.getJoystick().getPos() == Joystick.Position.UP){
difSelect++;
if(difSelect > buttons2.size()-1){
difSelect = 0;
}
// System.out.println(difSelect);
}
sh.set(sh.getCurrentSong().getSongs().get(difSelect));
}else{ //Screen for selecting song
if(e.getJoystick().getPos() == Joystick.Position.DOWN){
selected++;
}else if(e.getJoystick().getPos() == Joystick.Position.UP){
selected--;
}
sh.set(songs.indexOf(selectedToSong(selected)));
sh.play();
}
}
@@ -107,4 +245,28 @@ public class MenuState extends GameState {
}
}
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){
return songs.get(songs.size()+s);
}else{
return songs.get(s);
}
}
}
-56
View File
@@ -1,56 +0,0 @@
package model.gameState;
import java.awt.Graphics2D;
import model.SongHandler;
import control.GameStateManager;
import control.button.ButtonEvent;
import control.joystick.JoystickEvent;
public class PickSongState extends GameState {
public PickSongState(GameStateManager gsm, SongHandler sh) {
super(gsm, sh);
}
@Override
public void init() {
sh.set(0);
sh.play(true);
}
@Override
public void update(float factor) {
// TODO Auto-generated method stub
}
@Override
public void draw(Graphics2D g2d) {
g2d.drawImage(sh.getCurrentSong().getBackgroundImage(), null, 0, 0);
g2d.drawImage(sh.getCurrentSong().getBannerImage(), null, 400, 0);
}
@Override
public void buttonPressed(ButtonEvent e) {}
@Override
public void buttonReleased(ButtonEvent e) {}
@Override
public void onJoystickMoved(JoystickEvent e) {
switch (e.getJoystick().getPos()) {
case LEFT:
sh.previous();
sh.play(true);
break;
case RIGHT:
sh.next();
sh.play(true);
break;
default:
break;
}
}
}
+6
View File
@@ -51,6 +51,12 @@ public class PlayState extends GameState {
@Override
public void init() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
sh.play();
for(int i=1; i<ButtonHandler.getButtons().size(); i++)
+35 -16
View File
@@ -5,6 +5,7 @@ import image.Images.ImageType;
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
@@ -22,8 +23,7 @@ public class TitleState extends GameState {
int index = 0;
int varx = 0;
int frame = 0;
int maxFrames = 2560;
int frame;
public TitleState(GameStateManager gsm, SongHandler sh){
super(gsm, sh);
@@ -43,30 +43,49 @@ public class TitleState extends GameState {
@Override
public void draw(Graphics2D g2) {
g2.setColor(Color.WHITE);
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.setColor(new Color(1,1,0, 0.7f));
g2.fillRect(100,0,100,1024);
g2.setColor(new Color(1,0,0, 0.7f));
g2.fillRect(200,0,100,1024);
g2.setColor(new Color(0,1,0, 0.7f));
g2.fillRect(1180,0,100,1024);
g2.setColor(new Color(1,1,0, 0.7f));
g2.fillRect(1080,0,100,1024);
g2.setColor(new Color(1,0,0, 0.7f));
g2.fillRect(980,0,100,1024);
GradientPaint gp = new GradientPaint(300, 0, new Color(0,0,1, 0.6f),980,1024 ,new Color(0,0,1, 0.2f));
g2.setPaint(gp);
g2.fillRect(300, 0, 680, 1024);
g2.translate(640, 512);
BufferedImage subImg2 = background.getSubimage(0, 0, 5120, 1024);
g2.drawImage(subImg2, -640 -((frame * 4) % maxFrames), -512, 5120, 1024, null);
//
// g2.setColor(Color.ORANGE);
// g2.fillRect( -25*5 -1, - 18*5 -1, 49*5 + 1, 26*5 + 1);
// g2.drawRect( -25*5 -3, - 18*5 -3, 49*5 + 4, 26*5 + 4);
int image_x = ((frame / 6) % 6) * 49;
BufferedImage subImg = pressStart.getSubimage(image_x, 0, 49, 26);
g2.drawImage(subImg, - 25*5, - 18*5, 49*5, 26*5, null);
g2.drawImage(colorStrike, -27*8 , -300, 54*8, 18*8, null);
g2.drawImage(subImg, - 25*5, 200, 49*5, 26*5, null);
Font textFont = new Font("OCR A Extended", Font.BOLD, 15);
g2.setFont(textFont);
g2.setColor(Color.WHITE);
g2.drawString("2015 Team Hamtaro", - 18*5, 500);
g2.setColor(Color.RED);
Font textFont2 = new Font("OCR A Extended", Font.BOLD, 130);
g2.setFont(textFont2);
g2.drawString("Color", -215, -300);
g2.drawString("Strike", -250, -170);
}
@Override
@@ -75,7 +94,7 @@ public class TitleState extends GameState {
switch(e.getButton().getButtonID()){
case 0:
//gsm.next();
gsm.setState(State.PLAY_STATE);
gsm.setState(State.MENU_STATE);
break;
}
+36
View File
@@ -0,0 +1,36 @@
package model.objects;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
public class DifficultyButton {
private int x = 900;
private int y;
private String str;
private Color color;
public DifficultyButton(int y, String str, Color color) {
this.y = y;
this.str = str;
this.color = color;
}
public void draw(Graphics2D g2) {
g2.setColor(Color.WHITE);
g2.fillRect(x, y, 300, 75);
g2.setColor(Color.ORANGE);
g2.drawRect(x, y, 300, 75);
g2.drawRect(x-2, y-2, 304, 79);
g2.setColor(color);
Font textFont2 = new Font("OCR A Extended", Font.BOLD, 50);
g2.setFont(textFont2);
g2.drawString(str, x+5, y+50);
}
}
+17 -8
View File
@@ -10,6 +10,8 @@ import java.awt.geom.GeneralPath;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import audio.Song;
public class MenuButton {
private ArrayList<GeneralPath> buttonparts;
@@ -18,18 +20,19 @@ public class MenuButton {
private Paint gradient;
private int x, y, rounding;
private double scalefactor;
private String text;
private boolean selected;
private int fadecounter;
public MenuButton(int x, int y, double scale, String text, int rounding, Color c0){
private Song song;
public MenuButton(int x, int y, double scale, int rounding, Color c0, Song song){
this.x = x;
this.y = y;
this.scalefactor = scale;
this.text = text;
this.rounding = rounding;
calculateButton();
setSong(song);
colors = new ArrayList<Color>();
@@ -98,15 +101,15 @@ public class MenuButton {
g2d.setFont(textFont);
g2d.translate((x+160)*scalefactor, (y+74)*scalefactor);
g2d.rotate(-0.1);
g2d.drawString(text, 0, 0);
g2d.drawString(song.getTitle(), 0, 0);
g2d.rotate(0.1);
g2d.translate(-(x+160)*scalefactor, -(y+74)*scalefactor);
}
public void update(){
if(selected && fadecounter < 5){
x -= 8;
y -=8;
x += 8;
y -= 8;
scalefactor += 0.04;
fadecounter++;
calculateButton();
@@ -134,6 +137,12 @@ public class MenuButton {
public int getX() {
return x;
}
public Song getSong() {
return song;
}
public void setSong(Song song) {
this.song = song;
}
}
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

File diff suppressed because one or more lines are too long
-72
View File
@@ -1,72 +0,0 @@
{
"meta": {
"title": "title of song",
"subtitle": "subtitle of song",
"author": "author of song",
"sample_start": 12.00,
"BPM": 0
},
"file": {
"audio": "NAME_OF_SONG.mp3",
"background": "background.png",
"banner": "banner.png"
},
"data": [
{
"difficulty": "easy",
"objects": [
{
"time": 1,
"direction": 1,
"button": 0,
"hold": true,
"length": 1000
},
{
"time": 16,
"direction": 6,
"button": 1
}
],
"button": [
{
"time": 0,
"button": 0,
"color": 0
},
{
"time": 20,
"button": 6,
"color": 1
}
]
},
{
"difficulty": "medium",
"objects": [
{
"time": 4,
"direction": 3,
"button": 3
},
{
"time": 12,
"direction": 5,
"button": 2
}
],
"button": [
{
"time": 0,
"button": 0,
"color": 0
},
{
"time": 20,
"button": 6,
"color": 1
}
]
}
]
}
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

-72
View File
@@ -1,72 +0,0 @@
{
"meta": {
"title": "Song #2",
"subtitle": "Some song",
"author": "Kenneth",
"sample_start": 136.000,
"BPM": 44.260
},
"file": {
"audio": "NAME_OF_SONG.mp3",
"background": "background.png",
"banner": "banner.png"
},
"data": [
{
"difficulty": "easy",
"objects": [
{
"time": 1,
"direction": 1,
"button": 0,
"hold": true,
"length": 1000
},
{
"time": 16,
"direction": 6,
"button": 1
}
],
"button": [
{
"time": 0,
"button": 0,
"color": 0
},
{
"time": 20,
"button": 6,
"color": 1
}
]
},
{
"difficulty": "medium",
"objects": [
{
"time": 4,
"direction": 3,
"button": 3
},
{
"time": 12,
"direction": 5,
"button": 2
}
],
"button": [
{
"time": 0,
"button": 0,
"color": 0
},
{
"time": 20,
"button": 6,
"color": 1
}
]
}
]
}
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 327 KiB

File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

+2
View File
@@ -4,6 +4,7 @@ import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -43,5 +44,6 @@ public class GameView extends JPanel{
RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setRenderingHints(rh);
gsm.currentState.draw(g2d);
Toolkit.getDefaultToolkit().sync();
}
}