Я пытаюсь нарисовать 2 круга, используя текстуры в Java с LibGDX. Мои классы довольно просты, GameObject имеет круг (для логики) и метод рисования.LibGDX рисование кругов масштабах как-то
Вот мой метод рисования:
@Override
public void draw(Batch batch, float alpha){
batch.draw(sprite, circle.x-circle.radius, circle.y-circle.radius, circle.x+circle.radius, circle.y+circle.radius);
}
Это код, который я выполнить:
GameObject go = new GameObjectBuilder().createNew()
.withPosition(32, 32)
.withRadius(32)
.withTexture(new Texture(Gdx.files.internal("ball.png")))
.withId(0)
.build();
GameObject go2 = new GameObjectBuilder().createNew()
.withPosition(64, 64)
.withRadius(32)
.withTexture(new Texture(Gdx.files.internal("ball.png")))
.withId(1)
.build();
stage.addActor(go);
stage.addActor(go2);
И это результат:
Так или иначе, используя круги с одинаковым размером , масштабирует их при размещении дальше от начала координат. В настоящее время мой основной класс расширяет ApplicationAdapter и все.
Вот стоп звонков, которые я делаю в своем застройщике.
circle.setPosition(x, y); // LibGDX.Circle class call
circle.setRadius(radius); // LibGDX.Circle class call
sprite = new Sprite(texture);
Использование ShapeRenderer, вызывая те же объекты и рисунок заполненный круг дает следующие результаты:
shapeRenderer.setColor(Color.BLACK);
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
for(GameObject goo : objects.values()) {
shapeRenderer.circle(goo.getX(), goo.getY(), goo.getRadius());
}
shapeRenderer.end();
Заключительный изменить:
batch.draw(sprite, circle.x-circle.radius, circle.y-circle.radius, circle.radius*2, circle.radius*2);
ли трюк!
Вы пробовали жесткого кодирования значения для ширины и высоты в ваш 'batch.draw()' позвонить? Означает ли это ожидаемое поведение? – rbennett485
Я должен добавить, что ответ Майкла Хоббса должен сделать трюк, вот где ваша проблема лежит – rbennett485