gpt4 book ai didi

java - 屏幕中心坐标错误

转载 作者:行者123 更新时间:2023-12-02 04:03:30 24 4
gpt4 key购买 nike

我正在编写一个 Android 游戏,并尝试将角色放在屏幕中间(X 轴)。

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

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

然后我将phoneWidth除以二,希望角色出现在屏幕中间,但它稍微偏右。

这是我使用的代码:

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();
}

有谁知道这个错误从何而来?

最佳答案

Sprite 的左边缘将位于屏幕中间。

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

关于java - 屏幕中心坐标错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34616314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com