Compare commits
	
		
			2 Commits
		
	
	
		
			393b2fae58
			...
			c34610b3e3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| c34610b3e3 | |||
| 219622ff53 | 
| @ -2,16 +2,15 @@ package com.me.brickbuster; | ||||
|  | ||||
| import com.badlogic.gdx.ApplicationAdapter; | ||||
| import com.badlogic.gdx.Gdx; | ||||
| import com.badlogic.gdx.graphics.Color; | ||||
| import com.badlogic.gdx.graphics.GL20; | ||||
| import com.badlogic.gdx.graphics.g2d.BitmapFont; | ||||
| import com.badlogic.gdx.graphics.g2d.SpriteBatch; | ||||
| import com.badlogic.gdx.graphics.glutils.ShapeRenderer; | ||||
| import com.badlogic.gdx.math.MathUtils; | ||||
| import com.badlogic.gdx.math.Vector2; | ||||
| import com.me.brickbuster.entity.*; | ||||
| import com.me.brickbuster.entity.powerup.GluePowerUp; | ||||
| import com.me.brickbuster.entity.powerup.LongerPaddlePowerUp; | ||||
| import com.me.brickbuster.entity.powerup.MultiBallPowerUp; | ||||
| import com.me.brickbuster.entity.powerup.PowerUp; | ||||
| import com.me.brickbuster.entity.powerup.*; | ||||
|  | ||||
| import java.util.*; | ||||
|  | ||||
| @ -21,6 +20,8 @@ public class BrickBuster extends ApplicationAdapter { | ||||
| 	public static final int HEIGHT = 600; | ||||
| 	public static final String TITLE = "Brick Buster"; | ||||
|  | ||||
| 	public static final int SHIELD_HEIGHT = 5; | ||||
|  | ||||
| 	public static final Vector2 HORIZONTAL_EDGE = new Vector2(1, 0); | ||||
| 	public static final Vector2 VERTICAL_EDGE = new Vector2(0, 1); | ||||
|  | ||||
| @ -29,16 +30,20 @@ public class BrickBuster extends ApplicationAdapter { | ||||
|  | ||||
| 	private BitmapFont font; | ||||
| 	private SpriteBatch batch; | ||||
| 	private ShapeRenderer sr; | ||||
|  | ||||
| 	private Paddle paddle; | ||||
| 	private ArrayList<Ball> balls; | ||||
| 	private ArrayList<Brick> bricks; | ||||
| 	private ArrayList<PowerUp> powerUps; | ||||
|  | ||||
| 	private boolean shieldActive = false; | ||||
|  | ||||
| 	@Override | ||||
| 	public void create () { | ||||
| 		font = new BitmapFont(); | ||||
| 		batch = new SpriteBatch(); | ||||
| 		sr = new ShapeRenderer(); | ||||
|  | ||||
| 		paddle = new Paddle(this); | ||||
|  | ||||
| @ -66,21 +71,30 @@ public class BrickBuster extends ApplicationAdapter { | ||||
| 		Gdx.gl.glClearColor(0.5f,1,1,1); | ||||
| 		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); | ||||
|  | ||||
|  | ||||
| 		long start_update = System.nanoTime(); | ||||
| 		update(Gdx.graphics.getDeltaTime()); | ||||
| 		long finish_update = System.nanoTime() - start_update; | ||||
|  | ||||
| 		long start_render = System.nanoTime(); | ||||
| 		for (Brick block : bricks) { | ||||
| 			block.render(); | ||||
| 			block.render(sr); | ||||
| 		} | ||||
| 		for (PowerUp powerUp : powerUps) { | ||||
| 			powerUp.render(); | ||||
| 			powerUp.render(sr); | ||||
| 		} | ||||
| 		for (Ball ball : balls) { | ||||
| 			ball.render(); | ||||
| 			ball.render(sr); | ||||
| 		} | ||||
| 		paddle.render(); | ||||
| 		paddle.render(sr); | ||||
|  | ||||
| 		if (shieldActive) { | ||||
| 			sr.begin(ShapeRenderer.ShapeType.Filled); | ||||
| 			sr.setColor(Color.SALMON); | ||||
| 			sr.rect(0, 0, WIDTH, SHIELD_HEIGHT); | ||||
| 			sr.end(); | ||||
| 		} | ||||
|  | ||||
| 		long finish_render = System.nanoTime() - start_render; | ||||
|  | ||||
| 		batch.begin(); | ||||
| @ -143,6 +157,14 @@ public class BrickBuster extends ApplicationAdapter { | ||||
| 		return null; | ||||
| 	} | ||||
|  | ||||
| 	public void setShieldActive(boolean shieldActive) { | ||||
| 		this.shieldActive = shieldActive; | ||||
| 	} | ||||
|  | ||||
| 	public boolean isShieldActive() { | ||||
| 		return shieldActive; | ||||
| 	} | ||||
|  | ||||
| 	public ArrayList<Ball> getBalls() { | ||||
| 		return balls; | ||||
| 	} | ||||
| @ -166,6 +188,7 @@ public class BrickBuster extends ApplicationAdapter { | ||||
| 		tmp.put(GluePowerUp.class, 30); | ||||
| 		tmp.put(LongerPaddlePowerUp.class, 40); | ||||
| 		tmp.put(MultiBallPowerUp.class, 20); | ||||
| 		tmp.put(ShieldPowerUp.class, 40); | ||||
| 		powerUpWeights = Collections.unmodifiableMap(tmp); | ||||
|  | ||||
| 		int sum = 0; | ||||
|  | ||||
| @ -2,6 +2,7 @@ package com.me.brickbuster.entity; | ||||
|  | ||||
| import com.badlogic.gdx.Gdx; | ||||
| import com.badlogic.gdx.graphics.Color; | ||||
| import com.badlogic.gdx.graphics.glutils.ShapeRenderer; | ||||
| import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType; | ||||
| import com.badlogic.gdx.math.MathUtils; | ||||
| import com.badlogic.gdx.math.Vector2; | ||||
| @ -30,11 +31,11 @@ public class Ball extends Entity { | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| 	public void render() { | ||||
| 		getShapeRenderer().begin(ShapeType.Filled); | ||||
| 		getShapeRenderer().setColor(BALL_COLOR); | ||||
| 		getShapeRenderer().circle(getPos().x, getPos().y, RADIUS); | ||||
| 		getShapeRenderer().end(); | ||||
| 	public void render(ShapeRenderer sr) { | ||||
| 		sr.begin(ShapeType.Filled); | ||||
| 		sr.setColor(BALL_COLOR); | ||||
| 		sr.circle(getPos().x, getPos().y, RADIUS); | ||||
| 		sr.end(); | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| @ -75,12 +76,13 @@ public class Ball extends Entity { | ||||
| 			Utils.reflect(direction, BrickBuster.VERTICAL_EDGE); | ||||
| 		} else if (new_pos.y + RADIUS > BrickBuster.HEIGHT) { | ||||
| 			Utils.reflect(direction, BrickBuster.HORIZONTAL_EDGE); | ||||
| 		} else if (new_pos.y - RADIUS < BrickBuster.SHIELD_HEIGHT && getBrickBuster().isShieldActive()) { | ||||
| 			Utils.reflect(direction, BrickBuster.HORIZONTAL_EDGE); | ||||
| 			getBrickBuster().setShieldActive(false); | ||||
| 		} else if (new_pos.y + RADIUS < 0) { | ||||
| 			isDead = true; | ||||
| 			return; | ||||
| 		} | ||||
|  | ||||
| 		if (direction.y < 0 && new_pos.y <= Paddle.PADDLE_Y + Paddle.PADDLE_HEIGHT + RADIUS) { | ||||
| 		} else if (direction.y < 0 && new_pos.y <= Paddle.PADDLE_Y + Paddle.PADDLE_HEIGHT + RADIUS) { | ||||
| 			Pair<Vector2, Vector2> paddle = getBrickBuster().getPaddle().getTopEdge(); | ||||
| 			Vector2 lineDir = paddle.getValue().sub(paddle.getKey()); | ||||
| 			Vector2 nearest = Utils.nearestPoint(paddle.getKey().cpy(), lineDir, new_pos.cpy()); | ||||
|  | ||||
| @ -1,6 +1,7 @@ | ||||
| package com.me.brickbuster.entity; | ||||
|  | ||||
| import com.badlogic.gdx.graphics.Color; | ||||
| import com.badlogic.gdx.graphics.glutils.ShapeRenderer; | ||||
| import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType; | ||||
| import com.badlogic.gdx.math.Vector2; | ||||
| import com.me.brickbuster.BrickBuster; | ||||
| @ -28,11 +29,11 @@ public class Brick extends Entity { | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| 	public void render() { | ||||
| 		getShapeRenderer().begin(ShapeType.Filled); | ||||
| 		getShapeRenderer().setColor(BLOCK_COLOR); | ||||
| 		getShapeRenderer().rect(getX(), getY(), BLOCK_WIDTH, BLOCK_HEIGHT); | ||||
| 		getShapeRenderer().end(); | ||||
| 	public void render(ShapeRenderer sr) { | ||||
| 		sr.begin(ShapeType.Filled); | ||||
| 		sr.setColor(BLOCK_COLOR); | ||||
| 		sr.rect(getX(), getY(), BLOCK_WIDTH, BLOCK_HEIGHT); | ||||
| 		sr.end(); | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
|  | ||||
| @ -6,17 +6,15 @@ import com.me.brickbuster.BrickBuster; | ||||
|  | ||||
| public abstract class Entity { | ||||
|  | ||||
| 	private ShapeRenderer shapeRenderer; | ||||
| 	private BrickBuster brickBuster; | ||||
| 	private Vector2 pos; | ||||
|  | ||||
| 	public Entity(BrickBuster brickBuster, float x, float y) { | ||||
| 		this.shapeRenderer = new ShapeRenderer(); | ||||
| 		this.brickBuster = brickBuster; | ||||
| 		this.pos = new Vector2(x, y); | ||||
| 	} | ||||
|  | ||||
| 	public abstract void render(); | ||||
| 	public abstract void render(ShapeRenderer sr); | ||||
|  | ||||
| 	public abstract void update(float dt); | ||||
|  | ||||
| @ -24,10 +22,6 @@ public abstract class Entity { | ||||
| 		return brickBuster; | ||||
| 	} | ||||
|  | ||||
| 	public ShapeRenderer getShapeRenderer() { | ||||
| 		return shapeRenderer; | ||||
| 	} | ||||
|  | ||||
| 	public Vector2 getPos() { | ||||
| 		return pos; | ||||
| 	} | ||||
|  | ||||
| @ -3,6 +3,7 @@ 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.glutils.ShapeRenderer; | ||||
| import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType; | ||||
| import com.badlogic.gdx.math.Vector2; | ||||
| import com.me.brickbuster.BrickBuster; | ||||
| @ -24,11 +25,11 @@ public class Paddle extends Entity { | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| 	public void render() { | ||||
| 		getShapeRenderer().begin(ShapeType.Filled); | ||||
| 		getShapeRenderer().setColor(sticky? Color.GRAY : PADDLE_COLOR); | ||||
| 		getShapeRenderer().rect(getX() - width/2, getY(), width, PADDLE_HEIGHT); | ||||
| 		getShapeRenderer().end(); | ||||
| 	public void render(ShapeRenderer sr) { | ||||
| 		sr.begin(ShapeType.Filled); | ||||
| 		sr.setColor(sticky? Color.GRAY : PADDLE_COLOR); | ||||
| 		sr.rect(getX() - width/2, getY(), width, PADDLE_HEIGHT); | ||||
| 		sr.end(); | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
|  | ||||
| @ -2,6 +2,7 @@ package com.me.brickbuster.entity.powerup; | ||||
|  | ||||
| import com.badlogic.gdx.graphics.Color; | ||||
| import com.badlogic.gdx.graphics.glutils.ShapeRenderer; | ||||
| import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType; | ||||
| import com.badlogic.gdx.math.Vector2; | ||||
| import com.me.brickbuster.BrickBuster; | ||||
| import com.me.brickbuster.Utils; | ||||
| @ -23,11 +24,11 @@ public abstract class PowerUp extends Entity { | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| 	public void render() { | ||||
| 		getShapeRenderer().begin(ShapeRenderer.ShapeType.Filled); | ||||
| 		getShapeRenderer().setColor(color); | ||||
| 		getShapeRenderer().circle(getX(), getY(), RADIUS); | ||||
| 		getShapeRenderer().end(); | ||||
| 	public void render(ShapeRenderer sr) { | ||||
| 		sr.begin(ShapeType.Filled); | ||||
| 		sr.setColor(color); | ||||
| 		sr.circle(getX(), getY(), RADIUS); | ||||
| 		sr.end(); | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
|  | ||||
| @ -0,0 +1,18 @@ | ||||
| package com.me.brickbuster.entity.powerup; | ||||
|  | ||||
| import com.badlogic.gdx.graphics.Color; | ||||
| import com.me.brickbuster.BrickBuster; | ||||
| import com.me.brickbuster.entity.Brick; | ||||
|  | ||||
| public class ShieldPowerUp extends PowerUp { | ||||
|  | ||||
| 	public ShieldPowerUp(BrickBuster brickBuster, Brick brick) { | ||||
| 		super(brickBuster, brick, Color.SALMON); | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| 	public void activate() { | ||||
| 		getBrickBuster().setShieldActive(true); | ||||
| 	} | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user