私はLibGDXを使い始めましたが、バッチを使用して問題が発生しました: レンダリング方法は、いくつかのボタンを含む、画面上のすべて。私のクラスButtonでは、ボタンをレンダリングした後、バッチを使ってテキストを描画します。 Screenクラスで「バッチ」を使用して描かれたテキストは、「レンダラー」を使用して描かれた長方形によって隠されています
:
問題は、それはそうここにあるいくつかのコードは明らかだかどうかを知りません(バッチが長方形のレンダラ後に始まる場合でも)テキストは、ボタンの四角形の後ろに描かれていることですpublic void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
viewport.apply();
vector3.set(Gdx.input.getX(), Gdx.input.getY(), 0);
viewport.unproject(vector3);
renderer.setProjectionMatrix(camera.combined);
renderer.setAutoShapeType(true);
renderer.begin(ShapeRenderer.ShapeType.Filled);
homeStars.render(renderer);
for (Button button: buttons)
{
button.render(renderer);
}
renderer.setColor(1,1,1,1);
//realCursor = cursorToWorldPosition(Gdx.input.getX(),Gdx.input.getY());
//renderer.circle((vector3.x+1)*Const.WORLD_WIDTH/2,(vector3.y+1)*Const.WORLD_HEIGHT/2,5);
renderer.circle(vector3.x,vector3.y,5);
renderer.set(ShapeRenderer.ShapeType.Line);
for(HomeStar star : HomeStars.stars)
{
if(vector3.dst(star.position)<Const.MAX_DIST_MOUSE_STAR){
renderer.line(vector3.x, vector3.y,star.position.x,star.position.y,Color.WHITE, Color.BLUE);
}
}
}
そして、Buttonクラスで :任意の助けをいただければ幸いです
public void render(ShapeRenderer renderer){
if (mouseOn() == true){
renderer.rect(position.x-width/2,position.y-height/2,width, height, Color.BLACK, Color.VIOLET, Color.BLACK, Color.VIOLET);
}
else if (mouseOn() == false){
renderer.rect(position.x-width/2,position.y-height/2,width, height, Color.BLACK, Color.GRAY, Color.BLACK, Color.GRAY);
}
batch.begin();
font.draw(batch, "yo", position.x, position.y);
batch.end();
}
は、ありがとうございました!
ありがとうございました。ところで、ShaperendererはSpriteBatchよりも適切ですか? – Vellyxenya
素早くデバッグしたり、テクスチャ(フォントなど)を必要としない場合。 – Xoppa
私は、ありがとう、非常に参照してください:) – Vellyxenya