Skip to content

Commit 1460c4d

Browse files
author
Joe O'Regan
committed
Flappy Bird - Redo for self contained jar file
1 parent fb0a5d1 commit 1460c4d

File tree

4 files changed

+29
-12
lines changed

4 files changed

+29
-12
lines changed

FlappyBird/Bird.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import java.net.URL;
12
import java.awt.Component;
23
import java.awt.Graphics;
34
import java.awt.Image;
@@ -6,6 +7,7 @@
67
import java.util.Random;
78

89
public class Bird extends Rectangle{
10+
private static final long serialVersionUID = 1L;
911
public static final int WIDTH=28;
1012
public static final int HEIGHT=20;
1113
Image pic;
@@ -14,14 +16,16 @@ public class Bird extends Rectangle{
1416

1517
Random random=new Random();
1618

17-
Bird(int a, int b, int w, int h, String s){
19+
Bird(int a, int b, int w, int h){
1820
yMotion=0;
1921
alive=true;
2022
x=a;
2123
y=b;
2224
width=w;
2325
height=h;
24-
pic=Toolkit.getDefaultToolkit().getImage(s);
26+
27+
URL url = getClass().getResource("/flappy.png");
28+
pic=Toolkit.getDefaultToolkit().getImage(url);
2529
}
2630

2731
public void move(){

FlappyBird/FlappyBird.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
import java.awt.event.KeyListener;
99
import java.awt.Font;
1010
import javax.swing.JPanel;
11-
import java.awt.Rectangle;
1211
import javax.swing.JFrame;
1312
import javax.swing.Timer;
1413
import java.util.ArrayList;
1514
import java.util.Random;
1615

1716
public class FlappyBird extends JPanel implements ActionListener,MouseListener,KeyListener{
18-
SoundEffect flapFX = new SoundEffect("flap.wav");
19-
SoundEffect crashFX = new SoundEffect("sadwah.wav");
17+
private static final long serialVersionUID = 1L;
18+
SoundEffect flapFX = new SoundEffect("/flap.wav");
19+
SoundEffect crashFX = new SoundEffect("/sadwah.wav");
2020

2121
public static FlappyBird flappyBird;
2222

@@ -61,7 +61,7 @@ public FlappyBird(){
6161
jframe.setResizable(false);
6262
jframe.setVisible(true);
6363

64-
bird=new Bird(WIDTH/2-Bird.WIDTH/2,HEIGHT/2-Bird.HEIGHT/2,Bird.WIDTH,Bird.HEIGHT,"flappy.png");
64+
bird=new Bird(WIDTH/2-Bird.WIDTH/2,HEIGHT/2-Bird.HEIGHT/2,Bird.WIDTH,Bird.HEIGHT);
6565
pipes=new ArrayList<Pipe>();
6666

6767
addPipe(true);
@@ -145,7 +145,7 @@ public void addPipe(boolean start){
145145
public void jump(){
146146
//Restart Game
147147
if(gameOver){
148-
bird=new Bird(WIDTH/2-Bird.WIDTH/2,HEIGHT/2-Bird.HEIGHT/2,Bird.WIDTH,Bird.HEIGHT,"flappy.png");
148+
bird=new Bird(WIDTH/2-Bird.WIDTH/2,HEIGHT/2-Bird.HEIGHT/2,Bird.WIDTH,Bird.HEIGHT);
149149
playCrash=true;
150150
pipes.clear();
151151
bird.yMotion=0;

FlappyBird/Pipe.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,20 @@
33
import java.awt.Image;
44
import java.awt.Rectangle;
55
import java.awt.Toolkit;
6+
import java.net.URL;
67
import java.util.Random;
78

89
public class Pipe extends Rectangle{
10+
/**
11+
*
12+
*/
13+
private static final long serialVersionUID = 1L;
914
final static int WIDTH=100, HEIGHT=500, SPEED=10;
1015
Image pic;
1116
private boolean bottomPipe;
1217

1318
Random random=new Random();
19+
URL url;
1420

1521
Pipe(int a, int b, boolean bottomPipe){
1622
this.bottomPipe=bottomPipe;
@@ -20,9 +26,11 @@ public class Pipe extends Rectangle{
2026
height=HEIGHT;
2127

2228
if(bottomPipe){
23-
pic=Toolkit.getDefaultToolkit().getImage("pipe_bottom.png");
29+
url = getClass().getResource("/pipe_bottom.png");
30+
pic=Toolkit.getDefaultToolkit().getImage(url);
2431
}else{
25-
pic=Toolkit.getDefaultToolkit().getImage("pipe_top.png");
32+
url = getClass().getResource("/pipe_top.png");
33+
pic=Toolkit.getDefaultToolkit().getImage(url);
2634
}
2735
}
2836

FlappyBird/SoundEffect.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
1+
12
import javax.sound.sampled.Clip;
23
import javax.sound.sampled.AudioSystem;
34
import javax.sound.sampled.AudioInputStream;
5+
6+
import java.io.BufferedInputStream;
47
import java.io.File;
8+
import java.io.InputStream;
59

610
public class SoundEffect{
711
Clip clip;
812

9-
1013
public SoundEffect(String filename){
1114
try{
12-
File file = new File(filename);
13-
AudioInputStream sound=AudioSystem.getAudioInputStream(file);
15+
InputStream audioSrc = getClass().getResourceAsStream(filename);
16+
InputStream bufferedIn = new BufferedInputStream(audioSrc);
17+
AudioInputStream sound=AudioSystem.getAudioInputStream(bufferedIn);
18+
1419
clip=AudioSystem.getClip();
1520
clip.open(sound);
1621
}catch(Exception e){

0 commit comments

Comments
 (0)