Added blocks and paddle and part of ball movement.

This commit is contained in:
BlueNutterfly 2018-11-11 11:40:03 +04:00
parent 6c6d5b34bf
commit 74b96990c5
5 changed files with 107 additions and 11 deletions

View File

@ -4,8 +4,11 @@ import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.GL20;
import com.me.brickbuster.entity.Ball; import com.me.brickbuster.entity.Ball;
import com.me.brickbuster.entity.Block;
import com.me.brickbuster.entity.Paddle; import com.me.brickbuster.entity.Paddle;
import java.util.ArrayList;
public class BrickBuster extends ApplicationAdapter { public class BrickBuster extends ApplicationAdapter {
public static final int WIDTH = 800; public static final int WIDTH = 800;
@ -14,11 +17,21 @@ public class BrickBuster extends ApplicationAdapter {
Ball ball; Ball ball;
Paddle paddle; Paddle paddle;
ArrayList<Block> blocks;
boolean playing = false;
@Override @Override
public void create () { public void create () {
ball = new Ball(); ball = new Ball(this);
paddle = new Paddle(); paddle = new Paddle(this);
blocks = new ArrayList<Block>();
for (int col = 0; col < 13; col++) {
for (int row = 0; row < 10; row++) {
int x = 15 + (col * (Block.BLOCK_WIDTH + 10));
int y = 15 + Block.BLOCK_HEIGHT + (row * (Block.BLOCK_HEIGHT + 5));
blocks.add(new Block(this, x, HEIGHT - y));
}
}
} }
@Override @Override
@ -30,9 +43,17 @@ public class BrickBuster extends ApplicationAdapter {
ball.render(); ball.render();
paddle.render(); paddle.render();
for (Block block : blocks) {
block.render();
}
} }
public void update(float dt) { public void update(float dt) {
if (Gdx.input.justTouched()) {
playing = true;
ball.launch();
}
ball.update(dt); ball.update(dt);
paddle.update(dt); paddle.update(dt);
} }
@ -41,4 +62,16 @@ public class BrickBuster extends ApplicationAdapter {
public void dispose () { public void dispose () {
} }
public boolean isPlaying() {
return playing;
}
public Ball getBall() {
return ball;
}
public Paddle getPaddle() {
return paddle;
}
} }

View File

@ -2,6 +2,7 @@ package com.me.brickbuster.entity;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.math.Vector2;
import com.me.brickbuster.BrickBuster; import com.me.brickbuster.BrickBuster;
public class Ball extends Entity { public class Ball extends Entity {
@ -9,8 +10,11 @@ public class Ball extends Entity {
public static final int RADIUS = 25; public static final int RADIUS = 25;
public static final Color BALL_COLOR = Color.CHARTREUSE; public static final Color BALL_COLOR = Color.CHARTREUSE;
public Ball() { public Vector2 direction;
super(400, 300); public float speed;
public Ball(BrickBuster brickBuster) {
super(brickBuster, 400, 83);
} }
@Override @Override
@ -23,8 +27,18 @@ public class Ball extends Entity {
@Override @Override
public void update(float dt) { public void update(float dt) {
if (this.getX() + RADIUS < BrickBuster.WIDTH) { if (!getBrickBuster().isPlaying()) {
this.setX(this.getX() + 1); return;
} }
setX(getX() + (int) (direction.x * speed));
setY(getY() + (int) (direction.y * speed));
/*if (this.getX() + RADIUS < BrickBuster.WIDTH) {
this.setX(this.getX() + 1);
}*/
}
public void launch() {
direction = new Vector2(0, 1);
speed = 5;
} }
} }

View File

@ -0,0 +1,28 @@
package com.me.brickbuster.entity;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.me.brickbuster.BrickBuster;
public class Block extends Entity {
public static final Color BLOCK_COLOR = Color.FOREST;
public static final int BLOCK_WIDTH = 50;
public static final int BLOCK_HEIGHT = 15;
public Block(BrickBuster brickBuster, int x, int y) {
super(brickBuster, x, y);
}
@Override
public void render() {
getShapeRenderer().begin(ShapeRenderer.ShapeType.Filled);
getShapeRenderer().setColor(BLOCK_COLOR);
getShapeRenderer().rect(getX(), getY(), BLOCK_WIDTH, BLOCK_HEIGHT);
getShapeRenderer().end();
}
@Override
public void update(float dt) {
}
}

View File

@ -1,14 +1,17 @@
package com.me.brickbuster.entity; package com.me.brickbuster.entity;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.me.brickbuster.BrickBuster;
public abstract class Entity { public abstract class Entity {
private ShapeRenderer shapeRenderer; private ShapeRenderer shapeRenderer;
private BrickBuster brickBuster;
private int x, y; private int x, y;
public Entity(int x, int y) { public Entity(BrickBuster brickBuster, int x, int y) {
this.shapeRenderer = new ShapeRenderer(); this.shapeRenderer = new ShapeRenderer();
this.brickBuster = brickBuster;
this.x = x; this.x = x;
this.y = y; this.y = y;
} }
@ -17,6 +20,10 @@ public abstract class Entity {
public abstract void update(float dt); public abstract void update(float dt);
public BrickBuster getBrickBuster() {
return brickBuster;
}
public ShapeRenderer getShapeRenderer() { public ShapeRenderer getShapeRenderer() {
return shapeRenderer; return shapeRenderer;
} }

View File

@ -1,5 +1,7 @@
package com.me.brickbuster.entity; package com.me.brickbuster.entity;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.me.brickbuster.BrickBuster; import com.me.brickbuster.BrickBuster;
@ -7,11 +9,11 @@ import com.me.brickbuster.BrickBuster;
public class Paddle extends Entity { public class Paddle extends Entity {
public static final Color PADDLE_COLOR = Color.BLACK; public static final Color PADDLE_COLOR = Color.BLACK;
public static final int PADDLE_WIDTH = 50; public static final int PADDLE_WIDTH = 100;
public static final int PADDLE_HEIGHT = 15; public static final int PADDLE_HEIGHT = 15;
public Paddle() { public Paddle(BrickBuster brickBuster) {
super(BrickBuster.WIDTH/2, 50); super(brickBuster, BrickBuster.WIDTH/2, 50);
} }
@Override @Override
@ -24,7 +26,19 @@ public class Paddle extends Entity {
@Override @Override
public void update(float dt) { public void update(float dt) {
Ball ball = getBrickBuster().getBall();
if (Gdx.input.isKeyPressed(Input.Keys.LEFT)) {
setX(getX() - 5);
if (!getBrickBuster().isPlaying()) {
ball.setX(ball.getX() - 5);
}
}
if (Gdx.input.isKeyPressed(Input.Keys.RIGHT)) {
setX(getX() + 5);
if (!getBrickBuster().isPlaying()) {
ball.setX(ball.getX() + 5);
}
}
} }
} }