【问题标题】:Scale camera in libGDX not save dimensions在 libGDX 中缩放相机不保存尺寸
【发布时间】:2018-11-08 08:23:46
【问题描述】:

我想在我的应用程序中使用地图并使用 libGDX 库在其上移动、缩放和旋转,我正在使用此代码在 android 中缩放相机:

public class MyGdxGame extends ApplicationAdapter implements GestureDetector.GestureListener {
    SpriteBatch batch;
    Texture texture;
    Sprite sprite;
    OrthographicCamera camera;

    @Override
    public void create() {
        batch = new SpriteBatch();

        camera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
        texture = new Texture(Gdx.files.internal("map.jpg"));
        sprite = new Sprite(texture);
        sprite.setPosition(-sprite.getWidth() / 2, -sprite.getHeight() / 2);

        Gdx.input.setInputProcessor(new GestureDetector(this));
    }

    @Override
    public void render() {
        Gdx.gl.glClearColor(1, 1, 1, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        camera.update();
        batch.setProjectionMatrix(camera.combined);
        batch.begin();
        sprite.draw(batch);
        batch.end();
    }

    @Override
    public void dispose() {
        batch.dispose();
        texture.dispose();
    }

    @Override
    public boolean pan(float x, float y, float deltaX, float deltaY) {
        camera.translate(-deltaX, deltaY);
        return false;
    }


    @Override
    public boolean zoom(float initialDistance, float distance) {
        float scale = initialDistance / distance;
        camera.zoom = scale;
        return false;
    }



}

它可以正确缩放,但是当我触摸并尝试再次缩放时,它会从 scale = 1 开始缩放。 如何缩放摄像头并保存其状态?

【问题讨论】:

    标签: android camera libgdx


    【解决方案1】:

    我没有任何使用 LibGDX 进行缩放的经验,但一个想法是将initialDistance 保存在一个变量中并使用它而不是原始变量(期望第一次获得初始值)。

    @Override
    public boolean zoom(float initialDistance, float distance) {
        if(savedDistance == 0)
            savedDistance = initialDistance
    
        float scale = savedDistance / distance;
        camera.zoom = scale;
        return false;
    }
    

    如果这没有帮助,阅读docs 或查看source code 可以给你一个想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多