Space von Team 22 (Nico B. Benjamin F. Lea A.)
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.

140 lines
3.6 KiB

package playground;
import java.awt.Color;
import collider.RectCollider;
import controller.EgoController;
import controller.LimitedTimeController;
import controller.ReboundController2;
import gameobjects.FallingStar;
import gameobjects.GameObject;
import gameobjects.RectObject;
public class BreakoutLevel2 extends BreakoutLevelBaseAdvanced {
@Override
protected int calcNrBricksX() {
return 6;
}
@Override
protected int calcNrBricksY() {
return 5;
}
@Override
protected double getBrickSizeX() {
return 60;
}
@Override
protected double getBrickSizeY() {
return 30;
}
@Override
protected double getBrickStartX() {
return 90;
}
@Override
protected double getBrickStartY() {
return 60;
}
@Override
protected void actionIfBallHitsBrick(GameObject ball, GameObject brick) {
for (int i = 0; i < 20; i++) {
double color = Math.random();
Color random = null;
if (color <= 0.24) {
random = Color.RED;
}
else if (color >= 0.25 && color <= 0.49) {
random = Color.BLUE;
}
else if (color >= 0.5 && color <= 0.74) {
random = Color.YELLOW;
}
else if (color >= 0.75) {
random = Color.GREEN;
}
double vx = ((Math.random() * (240 - -240)) + -240);
double vy = ((Math.random() * (240 - -240)) + -240);
FallingStar fragment = new FallingStar("fragment"+ i + getGameTime(), this, brick.getX(), brick.getY(), vx, vy, random, 5d);
LimitedTimeController time = new LimitedTimeController(getGameTime(), 2);
fragment.addController(time);
this.addObject(fragment);
}
ball.setVY(ball.getVY() * -1);
this.deleteObject(brick.id);
}
@Override
protected void actionIfBallHitsEgo(GameObject ball, GameObject ego) {
RectObject ego1 = (RectObject) ego;
if (ball.getVX() > 0 && ball.getX() <= ego.getX() - ego1.getWidth() * 0.45) {
ball.setVX(ball.getVX() *-1);
ball.setVY(ball.getVY() * -1);
}
else if (ball.getVX() < 0 && ball.getX() >= ego.getX() + ego1.getWidth() * 0.45) {
ball.setVX(ball.getVX() * -1);
ball.setVY(ball.getVY() * -1);
}
else {
ball.setVY(ball.getVY() * -1);
}
}
@Override
protected GameObject createEgoObject() {
RectObject ego = new RectObject("ego", this, 350d, 550d, 0d, 0d, 60d, 10d, Color.BLUE);
EgoController eController = new EgoController(60d, 10d);
ego.addController(eController);
RectCollider collider1 = new RectCollider("collider1", ego, 60d, 10d);
ego.addCollider(collider1);
return ego;
}
@Override
protected GameObject createBall() {
FallingStar ball = new FallingStar("ball", this, 350d, 350d, 130d, 130d, Color.RED, 5d);
ReboundController2 bbound = new ReboundController2();
ball.addController(bbound);
return ball;
}
@Override
protected GameObject createBrick(int row, int column) {
double color = Math.random();
Color random = null;
if (color <= 0.24) {
random = Color.RED;
}
else if (color >= 0.25 && color <= 0.49) {
random = Color.BLUE;
}
else if (color >= 0.5 && color <= 0.74) {
random = Color.YELLOW;
}
else if (color >= 0.75) {
random = Color.GREEN;
}
RectObject brick = new RectObject("brick" + row + column, this, 90d+ column * 120, 60d + row * 60d, 0d, 0d, 60d, 30d, random);
RectCollider greenCollider = new RectCollider("greenCollider", brick, 60d, 30d);
brick.addCollider(greenCollider);
return brick;
}
}