diff --git a/GameProject/src/controller/ReboundController.java b/GameProject/src/controller/ReboundController.java new file mode 100644 index 0000000..4d8cc1e --- /dev/null +++ b/GameProject/src/controller/ReboundController.java @@ -0,0 +1,16 @@ +package controller; + +public class ReboundController extends ObjectController { + + @Override + public void updateObject() { + // TODO Auto-generated method stub + if(this.getX() < 30 || this.getX() > 670) { + this.setVX(getVX() * -1); + } else if(this.getY() > 670 || this.getY() < 30) + this.setVY(getVY() * -1); { + } + + this.applySpeedVector(); + } +} diff --git a/GameProject/src/playground/LevelMovingObjects.java b/GameProject/src/playground/LevelMovingObjects.java index dd93acf..c88a6a7 100644 --- a/GameProject/src/playground/LevelMovingObjects.java +++ b/GameProject/src/playground/LevelMovingObjects.java @@ -1,6 +1,8 @@ package playground; +import java.awt.Color; +import gameobjects.RectObject; /** This level adds two distracting objects to the canvas that cannot collide but bounce around all the time. */ @@ -17,5 +19,22 @@ public class LevelMovingObjects extends SpaceInvadersLevel { protected String getStartupMessage() { return "Moving Objects Level!"; } + + /** Prepares Level for LevelMovingObjects. + * Adds a BlueBox & PinkBox in Level. + * + * @param String id LevelID + */ + @Override + public void prepareLevel(String id) { + super.prepareLevel(id); + RectObject BlueBox = new RectObject("BlueBox", this, 300, 300, 170, 70, 30, 30, Color.BLUE); + this.addObject(BlueBox); + BlueBox.addController(new controller.ReboundController()); + + RectObject PinkBox = new RectObject("PinkBox", this, 200, 200, 50, 170, 30, 30, Color.PINK); + this.addObject(PinkBox); + PinkBox.addController(new controller.ReboundController()); + } }