0

我正在关注本教程:http ://www.java-gaming.org/index.php?topic=25685.new并使用虚拟宽度和高度。

我的要求是:

  1. 背景图像应填满整个屏幕

  2. 游戏资产的纵横比应该保留:我的虚拟宽度,高度是:800,600。其中一个游戏资产的初始虚拟位置:450,20,所以我设置:

    playerSprite.setPosition(450, 20);//I assume (450,20) would be virtual
    

问题是当我通过主函数将窗口大小设置为 200X200 时,播放器(游戏资产)不可见。我认为资产(大小和位置)会自动缩放保留纵横比。但是,当我将屏幕尺寸设置为 800X600,然后(手动)将其调整为 200X200 时,资产被正确缩放和定位。我不知道在主函数中设置 200X200 与之后将更大的窗口大小调整为 200X200 之间有什么区别。

我的渲染功能:

Gdx.gl.glClearColor(0, 0, 0, 
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
//Stretch background to cover the entire screen
if(backgroundTR!=null){
//Gdx.gl.glViewport(0, 0, screenWidth, screenHeight);
    batch.begin();
batch.draw(backgroundTR, 0, 0,screenWidth,screenHeight);
batch.end();
}

//Preserve aspect ratios of assets as per the tutorial
orthographicCamera.update();
orthographicCamera.apply(Gdx.gl10);
Gdx.gl.glViewport((int)viewport.x, (int)viewport.y, (int)viewport.width, (int)viewport.height);

batch.begin();
batch.draw(titleTR,160f,450f);
    //batch.draw(playerTR,450f,20f);
playerSprite.draw(batch);
batch.end();

背景也没有填充。有什么帮助吗?

4

0 回答 0