Libgdx,OrthographicCamera无法正常工作(放大,缩小)

时间:2016-03-27 18:01:34

标签: java android libgdx

我有一个libgdx的问题。我想做一个关于放大,缩小的简单示例,但是orthographicCamera没有做任何事情。

我的代码:

public class HitTheGreenBlock extends ApplicationAdapter {

    public static int WIDTH, HEIGHT;

    SpriteBatch batch;
    OrthographicCamera orthographicCamera;

    private StateManager stateManager;

    @Override
    public void create () {

        WIDTH = Gdx.graphics.getWidth();
        HEIGHT = Gdx.graphics.getHeight();

        batch = new SpriteBatch();

        orthographicCamera = new OrthographicCamera();
        orthographicCamera.translate(WIDTH /20 , HEIGHT / 20);
        orthographicCamera.update();

        stateManager = new StateManager();

    }

    @Override
    public void render () {
        Gdx.gl.glClearColor(1, 0.78f, 0.25f, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        stateManager.update(Gdx.graphics.getDeltaTime());
        stateManager.draw(batch);

    }
}

将图像绘制到屏幕上的类:

public class PlayState extends MainState{

    public PlayState(StateManager stateManager){
        super(stateManager);
    }

    private int width,height;

    public void init() {
        width = 2 * HitTheGreenBlock.WIDTH / 3;
        height = width;
        ImageLoader.load(); 

    }
    public void update(float dt) {


    }
    public void draw(SpriteBatch spriteBatch) {

        spriteBatch.begin();

        spriteBatch.draw(ImageLoader.greenRegion, (Gdx.graphics.getWidth() - width) / 2, Gdx.graphics.getHeight() / 5, width, height);

        spriteBatch.end();

    }
    public void handleInput() {

    }
    public void dispose() {

    }
}

我将来自HitTheGreenBlock.class的spriteBatch发送到PlayState.class。

我更改了这一行:

        orthographicCamera.translate(WIDTH , HEIGHT);

到这一行:

        orthographicCamera.translate(WIDTH /20 , HEIGHT / 20);

但是orthographicCamera做任何事情和图像大小都没有改变。

我的代码中有什么问题?

*我还有3个课程,如果需要,我也可以添加它们。

1 个答案:

答案 0 :(得分:1)

您是否尝试在spriteBatch上将投影矩阵设置为camera.combined?在spriteBatch.begin之前,添加<ul class="nav nav-tabs"> <li onclick="this.className='active'"><a href="#">Home</a></li> <li onclick="this.className='active'"><a href="#">Menu 1</a></li> <li onclick="this.className='active'"><a href="#">Menu 2</a></li> <li onclick="this.className='active'"><a href="#">Menu 3</a></li> </ul>

这样做会告诉spriteBatch相对于你的相机渲染。