I have tried several solutions for drawing circles to generated coordinates. It is not working, but I do not know what is the problem with filledCircle method? How can I replace it?
Message:
FilledCircle cannot be resolved or is not a field
Code:
package com.example.game;
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.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
public class MainClass extends ApplicationAdapter {
SpriteBatch batch;
OrthographicCamera camera;
ShapeRenderer shapeRenderer;
private Sprite sprite;
@Override
public void create () {
shapeRenderer = new ShapeRenderer();
batch = new SpriteBatch();
}
@Override
public void render () {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
Gdx.gl.glEnable(GL20.GL_BLEND);
Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
Gdx.gl.glDisable(GL20.GL_BLEND);
batch.setProjectionMatrix(camera.combined);
batch.begin();
batch.draw(sprite, 200, 200, 64, 64);
shapeRenderer.begin(ShapeType.FilledCircle);
shapeRenderer.filledCircle(50, 50, 32);
shapeRenderer.setColor(Color.BLACK);
shapeRenderer.end();
batch.end();
}
}
The method begin(ShapeRenderer.ShapeType type)
accepts a ShapeType
. There are 3 Shapetypes: Filled, Line and Point. There is no FilledCircle
like you are using (that's what the error message says to you).
So, you should use shapeRenderer.begin(ShapeType.Filled);
Also, there is not filledCircle()
method. Try shapeRenderer.circle(50, 50, 32);
.
EDIT:
This is your code without some of the mistakes. You'll need to understand it and complete some parts, copy-paste won't do it.
@Override
public void create () {
shapeRenderer = new ShapeRenderer();
batch = new SpriteBatch();
camera = new OrthographicCamera(300, 480); //FILL THE VALUES HERE
sprite = new Sprite(new Texture(Gdx.files.internal("badlogic.jpg"))); //FILL THE VALUES HERE
sprite.setBounds(200, 200, 64, 64);
}
@Override
public void render () {
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
Gdx.gl.glEnable(GL20.GL_BLEND);
Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
Gdx.gl.glDisable(GL20.GL_BLEND);
batch.setProjectionMatrix(camera.combined);
batch.begin();
sprite.draw(batch);
batch.end();
shapeRenderer.setColor(Color.BLACK);
shapeRenderer.begin(ShapeType.Filled);
shapeRenderer.circle(50, 50, 32);
shapeRenderer.end();
}
You cannot initialize a shaperenderer inside of a batch, you will stop batch (batch end) and start the shaperenderer, when you stopped the shaperenderer you can start the batch again. Sorry for the fails, my english are no very good
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With