Nico B
2 years ago
2 changed files with 149 additions and 1 deletions
@ -0,0 +1,147 @@ |
|||||
|
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(); |
||||
|
if(vx <= 0.49) { |
||||
|
vx *= 240; |
||||
|
} else { |
||||
|
vx *= -240; |
||||
|
} |
||||
|
|
||||
|
double vy = Math.random(); |
||||
|
if(vy <= 0.49) { |
||||
|
vy *= 240; |
||||
|
} else { |
||||
|
vy *= -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) { |
||||
|
if (ball.getVX() > 0 && ball.getX() <= ego.getX()- 25) { |
||||
|
ball.setVX(ball.getVX()*-1); |
||||
|
ball.setVY(ball.getVY() * -1); |
||||
|
} |
||||
|
else if (ball.getVX() < 0 && ball.getX() >= ego.getX() + 25) { |
||||
|
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; |
||||
|
} |
||||
|
|
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue