2017-02-02 1 views
0

Я совершенно новой для программирования, так терпите меня здесь ...Sprite появляется изображение растягивается и качество оставляет желать лучшего, не может получить в правильном положении GDXLib

Я делаю 2d основную игру только на практике программирования в android studio и не может получить спрайт в правильное положение на экране. Также, когда я рисую спрайт, он выглядит растянутым, а качество очень плохое. Любая помощь приветствуется!

public class MyGdxGame extends ApplicationAdapter { 
    SpriteBatch batch; 
    Texture background; 
    Texture ball; 

    @Override 
    public void create() { 
     batch = new SpriteBatch(); 
     background = new Texture("gamebackground.png"); 
     ball = new Texture("ball2.png"); 
    } 

    @Override 
    public void render() { 

     batch.begin(); 
     batch.draw(background, 0,0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); 
     batch.draw(ball, 0,0, Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2); 
     batch.end(); 
    } 
+0

Какой спрайт растянут? 'фон''''''''''? можете ли вы приложить скриншот? И насколько велики фактические текстуры? –

+0

мяч растянулся, фон в порядке. Текстура составляет 136 х 96 пикселей, фон - весь экран. –

ответ

0

Вы должны сохранить исходное соотношение ширина/высота:

вместо масштабирования его до половины размера экрана, определите масштаб так:

float scaleFactor = 2.0f; 
batch.draw(ball, 0,0, ball.getWidth()*scaleFactor, ball.getHeight*scaleFactor); 

Если изображение " blurry ", и вы хотите, чтобы отдельные пиксели оставались четкими, попробуйте загрузить текстуру следующим образом:

ball = new Texture("ball2.png"); 
ball.setFilter(TextureFilter.Nearest, TextureFilter.Nearest); 

Это предотвращает (по умолчанию) линейную интерполяцию при масштабировании текстуры.

+0

Теперь он выглядит намного лучше. Большое спасибо за помощь! –

+0

@RichardFlack рад, что я мог бы помочь! Подтвердите свой ответ и/или отметьте его как принятый! –

Смежные вопросы