aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <cbaines8@gmail.com>2011-09-02 14:16:33 +0100
committerChristopher Baines <cbaines8@gmail.com>2011-09-02 14:16:33 +0100
commit043763756108f1bad553d260f4b5b2431185dac6 (patch)
treea0974758399e66899dce4aa7f77bf6ec27f9c959
parent63f8fd609fc2966eb7bf2ddf53a3241f70a02689 (diff)
downloadpunchingbag-043763756108f1bad553d260f4b5b2431185dac6.tar
punchingbag-043763756108f1bad553d260f4b5b2431185dac6.tar.gz
Implement an effect class to manage stopping and refreshing for the effects.
-rw-r--r--PunchingBag/src/ButtonListener.java2
-rw-r--r--PunchingBag/src/LEDListener.java7
-rw-r--r--PunchingBag/src/PunchingBag.java34
-rw-r--r--PunchingBag/src/PunchingBagGUI.java17
4 files changed, 53 insertions, 7 deletions
diff --git a/PunchingBag/src/ButtonListener.java b/PunchingBag/src/ButtonListener.java
index c2a4961..3338a08 100644
--- a/PunchingBag/src/ButtonListener.java
+++ b/PunchingBag/src/ButtonListener.java
@@ -1,5 +1,7 @@
import java.util.EventListener;
interface ButtonListener extends EventListener {
+
+ void buttonPressed(int x, int y);
}
diff --git a/PunchingBag/src/LEDListener.java b/PunchingBag/src/LEDListener.java
new file mode 100644
index 0000000..3031f58
--- /dev/null
+++ b/PunchingBag/src/LEDListener.java
@@ -0,0 +1,7 @@
+import java.util.EventListener;
+
+interface LEDListener extends EventListener {
+
+ void LEDchanged();
+
+}
diff --git a/PunchingBag/src/PunchingBag.java b/PunchingBag/src/PunchingBag.java
index 2efe903..b179e2f 100644
--- a/PunchingBag/src/PunchingBag.java
+++ b/PunchingBag/src/PunchingBag.java
@@ -28,6 +28,10 @@ public class PunchingBag implements Runnable {
buttonListenerList.add(ButtonListener.class, l);
}
+ public void addLEDChangeListener(LEDListener l) {
+ ledListenerList.add(LEDListener.class, l);
+ }
+
public void setLED(byte x, byte y, Colour colour) {
leds[x][y] = colour;
}
@@ -35,8 +39,32 @@ public class PunchingBag implements Runnable {
public void drawRipple(byte x, byte y, byte intensity) {
new Ripple(x, y, intensity);
}
+
+ class Effect implements Runnable {
+ boolean stop = false;
+ int refreshRate = 60; // Times per second to refresh
+
+ public void stop() {
+ stop = true;
+ }
+
+ public void run() {
+ while (!stop) {
+ draw();
+ try {
+ Thread.sleep(1000/60);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private void draw() {
+
+ }
+ }
- class Ripple implements Runnable {
+ class Ripple extends Effect {
double currentWidth;
final byte x;
final byte y;
@@ -100,10 +128,6 @@ delay ( d ) ;*/
}
}
- public void addLEDChangeListener(ButtonListener l) {
- ledListenerList.add(ButtonListener.class, l);
- }
-
private void calculateRawLeds() {
for (int y = 0; y <= 18; y++) {
for (int x = 0; x <= 6; x++) {
diff --git a/PunchingBag/src/PunchingBagGUI.java b/PunchingBag/src/PunchingBagGUI.java
index d7f4f9a..a999bad 100644
--- a/PunchingBag/src/PunchingBagGUI.java
+++ b/PunchingBag/src/PunchingBagGUI.java
@@ -10,7 +10,7 @@ import java.awt.geom.Area;
import javax.swing.JFrame;
import javax.swing.JPanel;
-public class PunchingBagGUI implements MouseListener, MouseMotionListener, ButtonListener {
+public class PunchingBagGUI implements MouseListener, MouseMotionListener, ButtonListener, LEDListener {
public static enum Mode {
Menu, Interactive, Game
@@ -58,7 +58,8 @@ public class PunchingBagGUI implements MouseListener, MouseMotionListener, Butto
+ bagSimFrame.getY());
bag.addButtonListener(this);
-
+ bag.addLEDChangeListener(this);
+
draw();
}
@@ -115,4 +116,16 @@ public class PunchingBagGUI implements MouseListener, MouseMotionListener, Butto
}
+ @Override
+ public void buttonPressed(int x, int y) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void LEDchanged() {
+ // TODO Auto-generated method stub
+
+ }
+
}