2014-09-18 5 views
0

Я пытаюсь развить змею игру на устройствах Android, используя Libgdx. Как мы все знаем, игра-змея основана на сетке, которая содержит разные ячейки.размер экрана поддержки libgdx - android

Теперь я разработал первую версию игры. Тем не менее, на рабочем столе это выглядит прекрасно, но в больших Android-устройствах (Galaxy S4, HTC ONE) все объекты выглядят очень маленькими. Кроме того, функциональность игры была «уничтожена».

На рабочем столе игра работает на разрешении 480 пикселей шириной X 800px Height (OrthographicCamera). Я также определил в игровом экране экземпляр класса Viewport и установил его в FillViewPort (когда вызывается метод изменения размера, я обновляю область просмотра).

Очевидно, что все это не сработало. Размер игры по-прежнему искажен.

Как сохранить это фиксированное разрешение, или я делаю масштаб игры и сохраняю это соотношение между пикселями.

P.S Я пытался реализовать все типы видовых, как они описаны в официальном сайте libgdx - https://github.com/libgdx/libgdx/wiki/Viewports

Не помог моей змее игры.

Вот код моего экрана:

package com.david.screens; 

import com.badlogic.gdx.Gdx; 
import com.badlogic.gdx.Screen; 
import com.badlogic.gdx.graphics.OrthographicCamera; 
import com.badlogic.gdx.utils.viewport.ExtendViewport; 
import com.badlogic.gdx.utils.viewport.FillViewport; 
import com.badlogic.gdx.utils.viewport.Viewport; 
import com.david.gameworld.GameRenderer; 
import com.david.gameworld.GameWorld; 
import com.david.helpers.InputHandler; 

public class GameScreen implements Screen{ 

    private GameRenderer renderer; 
    private GameWorld world; 
    private OrthographicCamera camera; 
    private Viewport viewport; 

    public GameScreen() { 
     world = new GameWorld(); 
     this.camera = new OrthographicCamera(); 
     this.camera.setToOrtho(false, 480, 800); 
     viewport = new ExtendViewport(480, 800); 
     renderer = new GameRenderer(world, camera); 
     Gdx.input.setInputProcessor(new InputHandler(world.getSnake())); 
    } 

    @Override 
    public void render(float delta) { 
     // TODO Auto-generated method stub 
     renderer.render(1/delta); 
    } 

    @Override 
    public void resize(int width, int height) { 
     // TODO Auto-generated method stub 
     viewport.update(width, height); 
    } 

    @Override 
    public void show() { 
     // TODO Auto-generated method stub  
    } 

    @Override 
    public void hide() { 
     // TODO Auto-generated method stub  
    } 

    @Override 
    public void pause() { 
     // TODO Auto-generated method stub  
    } 

    @Override 
    public void resume() { 
     // TODO Auto-generated method stub  
    } 

    @Override 
    public void dispose() { 
     // TODO Auto-generated method stub  
    } 
} 

ответ

1
viewport = new ExtendViewport(480, 800,camera); 

И перед нанесением материала, не забудьте установить матрицу проекции.

+0

Я уже пробовал это. Он не работает ... ни другие типы просмотра. –

+0

Проверьте примеры видовых экранов, затем –

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