Update velocity based on time delta

This commit is contained in:
Matt Low 2018-11-11 21:53:18 +04:00
parent c5642f7050
commit 353afe1cee

View File

@ -16,7 +16,7 @@ public class Ball extends Entity {
public static final Color BALL_COLOR = Color.CHARTREUSE; public static final Color BALL_COLOR = Color.CHARTREUSE;
public Vector2 direction; public Vector2 direction;
public float speed; public float speed = 300;
public Ball(BrickBuster brickBuster) { public Ball(BrickBuster brickBuster) {
super(brickBuster,BrickBuster.WIDTH/2, Paddle.PADDLE_Y + Paddle.PADDLE_HEIGHT + RADIUS); super(brickBuster,BrickBuster.WIDTH/2, Paddle.PADDLE_Y + Paddle.PADDLE_HEIGHT + RADIUS);
@ -36,7 +36,7 @@ public class Ball extends Entity {
return; return;
} }
Vector2 new_pos = getPos().cpy().add(direction.cpy().scl(speed)); Vector2 new_pos = getPos().cpy().add(direction.cpy().scl(speed * dt));
boolean brick_collision = false; boolean brick_collision = false;
Iterator<Brick> brickIterator = getBrickBuster().getBricks().iterator(); Iterator<Brick> brickIterator = getBrickBuster().getBricks().iterator();
@ -52,7 +52,7 @@ public class Ball extends Entity {
if (nearest.dst(new_pos.x, new_pos.y) <= RADIUS) { if (nearest.dst(new_pos.x, new_pos.y) <= RADIUS) {
brickIterator.remove(); brickIterator.remove();
if (getBrickBuster().getBricks().size() <= 39) { if (getBrickBuster().getBricks().size() <= 39) {
speed = 8; speed = 450;
} }
Utils.reflect(direction, segment.nor()); Utils.reflect(direction, segment.nor());
brick_collision = true; brick_collision = true;
@ -80,13 +80,12 @@ public class Ball extends Entity {
} }
} }
getPos().add(direction.cpy().scl(speed)); getPos().add(direction.cpy().scl(speed * dt));
} }
public void launch() { public void launch() {
float angle = MathUtils.random(MathUtils.PI/2) + MathUtils.PI/4; float angle = MathUtils.random(MathUtils.PI/2) + MathUtils.PI/4;
direction = new Vector2(MathUtils.cos(angle), MathUtils.sin(angle)); direction = new Vector2(MathUtils.cos(angle), MathUtils.sin(angle));
speed = 5;
} }
public void paddleCollision() { public void paddleCollision() {