簡體   English   中英

屏幕坐標中心錯誤

[英]Wrong center of screen coordinates

我正在編寫一個Android游戲,試圖將角色放置在屏幕中間(X軸)。

為了獲得屏幕的中間位置,我使用以下命令獲取屏幕寬度:

int phoneWidth = Resources.getSystem().getDisplayMetrics().widthPixels;

然后,我將phoneWidth除以2,並希望該字符出現在屏幕中間,但它稍微偏右。

這是我使用的代碼:

public void drawCharacter() {
        charImg = new Texture("pika.PNG");
        charSprite = new Sprite(charImg);
        float ahaha = Gdx.graphics.getWidth();
        charPosX = (float)phoneWidth/ 2;
    }

@Override
    public void render() {
        ch.stop();
        double elapsedSeconds = ch.getSeconds();

        checkLevel();
        handleObstacles();

        scrollTimer = scrollTimer + Gdx.graphics.getDeltaTime() / 2;
        if (scrollTimer > 1.0f)
            scrollTimer = 0.0f;

        sprite.setV(scrollTimer);
        sprite.setV2(scrollTimer + 2);

        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        charSprite.setPosition(charPosX, charPosY);
        for (int i = 0; i < obstacles.size(); i++) {
            obstacleSprites.get(i).setPosition(obstacles.get(i).getPosX(), obstacles.get(i).getPosY());
        }

        spriteBatch.begin();
        sprite.draw(spriteBatch);
        charSprite.draw(spriteBatch);
        for (int i = 0; i < obstacleSprites.size(); i++) {
            obstacleSprites.get(i).draw(spriteBatch);
        }
        spriteBatch.end();

        moveCharacter();
        moveObstacle();
    }

有人知道此錯誤來自何處嗎?

子畫面的左邊緣將在屏幕中間。

從屏幕寬度的一半減去精靈寬度的一半,以水平居中繪制精靈。

暫無
暫無

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

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