我尝试了几种用于绘制圆圈以生成坐标的解决方案。 它不起作用,但我不知道fillCircle方法有什么问题?我该如何更换它?
消息:
FilledCircle无法解析或不是字段
代码:
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();
}
}
答案 0 :(得分:19)
方法begin(ShapeRenderer.ShapeType type)
接受ShapeType
。有3 Shapetypes:填充,线和点。您没有使用FilledCircle
(这是错误消息对您说的)。
因此,您应该使用shapeRenderer.begin(ShapeType.Filled);
此外,还没有filledCircle()
方法。试试shapeRenderer.circle(50, 50, 32);
。
修改强>:
这是你的代码没有一些错误。你需要了解它并完成一些部分,复制粘贴不会这样做。
@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();
}
答案 1 :(得分:0)
您无法在批处理内初始化shaperenderer,您将停止批处理(批处理结束)并启动shaperenderer,当您停止shaperenderer时,您可以再次启动批处理。 对不起,我的英语不是很好