@Override
	public void show () {

		shapeRenderer = new ShapeRenderer();

		renderer = new Box2DDebugRenderer();

		playerSprite = Util.createSquareSprite(Pixels.toMeters(Gdx.graphics.getWidth() / 8), Pixels.toMeters(Gdx.graphics.getHeight() / 8), Color.BLUE);
		playerSprite.setPosition(-playerSprite.getWidth() / 2 - 5 * .05f, Pixels.toMeters(-Gdx.graphics.getHeight() / 2));

		shieldParts = new ShieldPart[4];

		float width = 5, height = 1;
		Objects.world = Objects.createWorld();
		Objects.world.setContactListener(new ShieldMinigameContactManager(this));
		for (int i = 0; i < 4; i++) {
			Vector2 position = new Vector2(i * width - width * 2 + 2, Pixels.toMeters(-Gdx.graphics.getHeight() / 2) + playerSprite.getHeight() * 1.5f);
			BodyDef bodyDef = new BodyDef();
			bodyDef.position.set(position);
			bodyDef.type = BodyType.KinematicBody;
			Body body = Objects.world.createBody(bodyDef);
			Box2DSprite sprite = new Box2DSprite(Util.createSquareSprite(Meters.toPixels(width), Meters.toPixels(height), Color.WHITE));
			body.setUserData(sprite);
			PolygonShape shape = new PolygonShape();
			shape.setAsBox(width / 2, height / 2);
			FixtureDef fixtureDef = new FixtureDef();
			fixtureDef.shape = shape;
			fixtureDef.filter.categoryBits = Values.PLAYER_CATEGORY_BITS;
			fixtureDef.filter.maskBits = Values.PLAYER_MASK;
			Fixture f = body.createFixture(fixtureDef);
			shieldParts[i] = new ShieldPart(body, sprite);
			shieldParts[i].setBoosted(false);
			shape.dispose();
			f.setUserData(shieldParts[i]);
		}
		manager = new EnemyShootsManager(level);

		Vector2 badguyPosition = new Vector2(-playerSprite.getWidth() / 2 + playerSprite.getWidth() / 2, Pixels.toMeters(Gdx.graphics.getHeight() / 2) - 1);
		BodyDef bodyDef = new BodyDef();
		bodyDef.type = BodyType.KinematicBody;
		bodyDef.position.set(badguyPosition);
		Body body = Objects.world.createBody(bodyDef);
		Box2DSprite sprite = new Box2DSprite(Util.createSquareSprite(Pixels.toMeters(Gdx.graphics.getWidth() / 8), Pixels.toMeters(Gdx.graphics.getHeight() / 8), Color.RED));
		body.setUserData(sprite);
		FixtureDef fixtureDef = new FixtureDef();
		PolygonShape shape = Util.createShapeBox(sprite.getWidth() / 2, sprite.getHeight() / 2);
		fixtureDef.shape = shape;
		fixtureDef.filter.categoryBits = Values.BADGUY_CATEGORY_BITS;
		fixtureDef.filter.maskBits = Values.BADGUY_MASK;
		Fixture f = body.createFixture(fixtureDef);
		badguy = new ShieldMinigameBadguy(body, level);
		f.setUserData(badguy);
		shape.dispose();
	}