我正在用libgdx开发游戏。我有一个三星注入4g,我的电脑中的游戏看起来很大,但在我的手机中看起来像我想要的样子。
但是当我在eclipse上的android机器模拟器上运行应用程序时,它看起来像在我的电脑上:大
我正在使用API_7,我不明白为什么。我的角色大小是128px,64px。我正在使用宽边,当我使用libgdx创建舞台时,我把它放了。
stage = new Stage(Gdx.graphics.getWidth(),Gdx.graphics.getHeight(),true);
答案 0 :(得分:1)
如果Resoltion更高,你的角色会变小,因为你的舞台总是有最大分辨率,但你的角色仍然保持其大小。例如,在调整大小时调整角色和舞台的大小,它应该看起来相同。此外,您需要提供更多信息,以便我们提供帮助
一个小例子。如果您的分辨率为1280x640,那么您的字符将是屏幕的10%对吗?现在想象的分辨率将是640x320。你的角色将是屏幕的20%。所以你需要让它变小,以便在较小的屏幕上具有相同的比例。
在较大的一个中,你需要以相同的比例使它变大。使用
@Override
public void resize(int width, int height) {
..... //resize here depending on the width and the height
}
在屏幕上调整大小。我建议你使用OrthographicCamera
你给你的舞台stage.setCamera(cam);
。所以你只需要在调整大小时更改camera viewport
,你的舞台就是合适的。但要跟踪aspect_ratio
。
您甚至可以开始使用固定分辨率。因此,您可以使用分辨率,其余部分由相机的zoom
完成。
要获得固定分辨率,您可以使用相机进行放大和缩小,以便始终在screen
上获得整个分辨率。这取决于您的屏幕分辨率。因此,如果分辨率较小(显示游戏的屏幕),则缩小以显示整个游戏区域。否则你放大直到在视口边缘有一条边。(这似乎是很难的东西)好的,看起来怎么样?
@Override
public void resize(int width, int height) {
Gdx.app.log("Screen", "Resize screen: " + getName());
cam.viewportHeight = height;
cam.viewportWidth = width;
if (Config.VIRTUAL_VIEW_WIDTH / cam.viewportWidth < Config.VIRTUAL_VIEW_HEIGHT
/ cam.viewportHeight) {
cam.zoom = Config.VIRTUAL_VIEW_HEIGHT / cam.viewportHeight;
} else {
cam.zoom = Config.VIRTUAL_VIEW_WIDTH / cam.viewportWidth;
}
cam.update(); // update it ;)
}
这实际上就是一切。 VIRTUAL_VIEW_WIDTH
和VIRTUAL_VIEW_HEIGHT
是px
中的分辨率,我在游戏中使用该分辨率。小心使用合适的相机。所以这是我给我的舞台的相机。
你可以看看blog。他确实解释了你需要了解的关于Sceen2d的一切以及如何调整大小等等。