我正在编写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();
}
有谁知道这个错误来自哪里?
答案 0 :(得分:2)
精灵的左手边缘位于屏幕中间。
从画面宽度的一半减去精灵宽度的一半,以画出水平居中的精灵。