Java 屏幕坐标中心错误 我正在编写一个Android游戏,我想把这个角色放在屏幕中间(X轴)。

Java 屏幕坐标中心错误 我正在编写一个Android游戏,我想把这个角色放在屏幕中间(X轴)。,java,android,Java,Android,为了获得屏幕的中间部分,我使用以下命令获得屏幕宽度: int phoneWidth = Resources.getSystem().getDisplayMetrics().widthPixels; 然后我把音宽分成两个,希望这个字符出现在屏幕中间,但在右边略微出现。 这是我使用的代码: public void drawCharacter() { charImg = new Texture("pika.PNG"); charSprite = new Sprite(

为了获得屏幕的中间部分,我使用以下命令获得屏幕宽度:

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

然后我把音宽分成两个,希望这个字符出现在屏幕中间,但在右边略微出现。

这是我使用的代码:

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();
    }
public void drawCharacter(){
charImg=新纹理(“pika.PNG”);
charSprite=新雪碧(charImg);
float ahaha=Gdx.graphics.getWidth();
charPosX=(float)phoneWidth/2;
}
@凌驾
公共无效呈现(){
ch.停止();
double-elapsedSeconds=ch.getSeconds();
checkLevel();
handle障碍();
scrollTimer=scrollTimer+Gdx.graphics.getDeltaTime()/2;
如果(滚动计时器>1.0f)
滚动定时器=0.0f;
sprite.setV(滚动定时器);
sprite.setV2(滚动计时器+2);
glClearColor(0,0,0,1);
Gdx.gl.glClear(GL20.gl\u颜色\u缓冲\u位);
charSprite.setPosition(charPosX,charPosY);
对于(int i=0;i

有人知道这个错误是从哪里来的吗?< /P> < P>你的精灵的左手边将在屏幕的中间。


从屏幕宽度的一半中减去一半的精灵宽度,以绘制水平居中的精灵。

请进一步描述绘图中的错误。x或y位置是否关闭?或者两者都有?另外…根据使用全屏、状态栏和/或工具栏,这些都是
y
偏移量的可能来源这正是问题所在。我认为默认情况下,角色将由中心绘制。谢谢