From 043763756108f1bad553d260f4b5b2431185dac6 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Fri, 2 Sep 2011 14:16:33 +0100 Subject: Implement an effect class to manage stopping and refreshing for the effects. --- PunchingBag/src/ButtonListener.java | 2 ++ PunchingBag/src/LEDListener.java | 7 +++++++ PunchingBag/src/PunchingBag.java | 34 +++++++++++++++++++++++++++++----- PunchingBag/src/PunchingBagGUI.java | 17 +++++++++++++++-- 4 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 PunchingBag/src/LEDListener.java (limited to 'PunchingBag') 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 + + } + } -- cgit v1.2.3