Programmierung 2 - Praktikum
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
1.9 KiB

2 years ago
  1. package playground;
  2. import java.awt.Color;
  3. import controller.BreakoutController;
  4. import controller.EgoController;
  5. import controller.ReboundController;
  6. import gameobjects.FallingStar;
  7. import gameobjects.GameObject;
  8. import gameobjects.RectObject;
  9. public class BreakoutLevel2 extends BreakoutLevelBaseAdvanced {
  10. @Override
  11. protected int calcNrBricksX() {
  12. return 6;
  13. }
  14. @Override
  15. protected int calcNrBricksY() {
  16. return 5;
  17. }
  18. @Override
  19. protected double getBrickSizeX() {
  20. return 60;
  21. }
  22. @Override
  23. protected double getBrickSizeY() {
  24. return 30;
  25. }
  26. @Override
  27. protected double getBrickStartX() {
  28. return 90;
  29. }
  30. @Override
  31. protected double getBrickStartY() {
  32. return 60;
  33. }
  34. @Override
  35. protected void actionIfBallHitsBrick(GameObject ball, GameObject brick) {
  36. if(ball.collisionDetection(brick)) {
  37. ball.setVY(ball.getVY()*-1);
  38. deleteObjectNow(brick.id);
  39. }
  40. }
  41. @Override
  42. protected void actionIfBallHitsEgo(GameObject ball, GameObject ego) {
  43. if(ball.collisionDetection(ego)) {
  44. ball.setVY(ball.getVY()*-1);
  45. }
  46. }
  47. @Override
  48. protected GameObject createEgoObject() {
  49. RectObject ego = new RectObject("ego", this, 350, 550, 0, 0, 80, 10, Color.blue);
  50. this.addObject(ego);
  51. ego.addController(new BreakoutController(ego.getWidth(),ego.getHeight()));
  52. ego.addCollider(new collider.RectCollider(ego.getId(),ego,ego.getWidth(),ego.getHeight()));
  53. return ego;
  54. }
  55. @Override
  56. protected GameObject createBall() {
  57. gameobjects.FallingStar ball = new gameobjects.FallingStar("ball",this,350,350,130,130,Color.red,5);
  58. ball.addController(new ReboundController());
  59. return ball;
  60. }
  61. @Override
  62. protected GameObject createBrick(int row, int column) {
  63. RectObject brick = new RectObject("brick"+row+column,this,40+(column*68),40+(row*60),0,0,60,30,Color.yellow);
  64. brick.addCollider(new collider.RectCollider(brick.getId(),brick,brick.getWidth(),brick.getHeight()));
  65. return brick;
  66. }
  67. }