我遇到了LibGDX的问题 .
我跟着他们的GitHub指南,然后我继续修改游戏 . (参考:https://github.com/libgdx/libgdx/wiki/A-simple-game)
我想在掉落地面3次时在屏幕上创建一个游戏 . 当它第三次接触地面时,我将lost设置为true,并且在render()方法的开始处,我检查丢失是否为真 .
这是有争议的:
if(lost){
bucket.dispose();
lostSound.play();
sprite.setProjectionMatrix(camera.combined);
Gdx.gl.glClearColor(0,0,0,0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
drop.dispose();
font.setColor(Color.WHITE);
GlyphLayout layout = new GlyphLayout(font, "Game Over!");
int fontX = 800 + 64 / 2;
int fontY = 480 / 2;
sprite.begin();
font.draw(sprite, layout, fontX, fontY);
sprite.end();
return;
}
丢失的声音有点怪,它在无限重复他的开始,我得到一个没有任何Game Over文本的黑屏 .
编辑:如果我通过命令行运行,我没有任何例外
1 回答
如果我输入
lost
条件的每个循环没有错,那么声音正在播放每个循环,添加一个像gameover=true
这样的标志,以便不再在主循环中进入 . 另外,这是你的游戏分辨率?如果你想要864的一半(如果是最大分辨率),X的中心,你必须做fontX= (800+64)/2
(432)而不是fontX= 800+64 /2
(832)希望能帮助到你