簡體   English   中英

libgdx 和 box2d 中的相機

[英]cameras in libgdx and box2d

我使用 libGDX 和 box2D 開發 2D 游戲。 相機跟隨身體。我也想滾動背景(png 3200X48)。 現在相機在 box2D 世界中工作正常,但背景沒有移動。 我搜索並嘗試了許多解決方案,但沒有幫助。 什么是最好的解決方案? 也許制作兩個相機,一個用於物理世界,第二個用於 libgdx 場景? 有人遇到過類似的問題嗎? 感謝您的幫助。 這是我的代碼的一部分

    float w = 320;
    float h = 480;

        @Override
    public void show() {
            camera = new OrthographicCamera();
        camera.setToOrtho(false, w/2, h/2);
        world = new World(new Vector2(0, -20), true);
        box2DDebugRenderer = new Box2DDebugRenderer();
    background = new Texture(Gdx.files.internal("gfx/forklift/background.png"));
    bg = new Sprite(background);
    ......}
    @Override
    public void render(float delta) {
        Gdx.gl.glClearColor(1f, 1f, 1f, 1f);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    moveCamera(dynamicBody.getPosition().x);
     moveBody();
        batch.begin();
        batch.draw(background, 0, 0, 3200, 480);
        batch.end();
    Gdx.app.log("", ""+dynamicBody.getPosition());
        world.step(1/60f, 6, 2);
        box2DDebugRenderer.render(world, camera.combined);}

    public void moveCamera(float x){
        camera.position.set(x, dynamicBody.getPosition().y, 0);
        camera.update();
        }
    @Override
    public void resize(int w, int h) {
    camera = new OrthographicCamera(w, h);
        camera.translate(h/2, w/2, 0);
        super.resize(w, h);
    }

在 batch.begin() 之前使用 batch.setProjectionmatrix(camera.combined)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM