我正在使用 Scene2d 和 Box2d 来处理 LibGdx。我使用 Scene2D 设计了 2 个阶段。第一个阶段用于 GUI,例如按钮,第二个阶段包含带有固定到我的 Box2d 对象坐标的图像的 Actor(在我的例子中是简单的矩形):
当我在 PC 上运行游戏时,我得到以下图像:
当我在 Galaxy S9+ 上运行它时,我收到以下图像:
正如您所看到的,背景和 box2d 对象在 PC 和 Android 上都能正确缩放。问题是,与 Android 相比,我的演员图像在 PC 上发生了位移(牛仔图像)。我缩放 Box2D 以获得更好的物理效果,但从那时起我在跨平台缩放对象时遇到了麻烦。
代码:
//My base screen, other screens extend this one:
public BaseScreen(){
Box2D.init();
mainStage = new Stage();
uiStage = new Stage();
manager = new AssetManager();
debug= new Box2DDebugRenderer();
world = new World(new Vector2(0,0),false);
loadAssetmanager();
//Box2d Sprites are initialzed in here:
initialize();
camera= new OrthographicCamera();
camera.setToOrtho(false,1024,1024);
debugMatrix= camera.combined.cpy();
debugMatrix.scale(32,32,0);
mainStage.getViewport().setCamera(camera);
camera.update();
//This BaseScreen class will initialize all assets from its subclasses here.
setMultiplexer();
}
背景:我是一名住院医师,自学爪哇语。我正在尝试为我的医学生设计一个小型模拟,我希望他们能够在个人电脑、手机或平板电脑上访问它。我需要基本的 Box2D 物理(我没有时间在每周工作 40-70 小时的情况下编写自己的物理引擎),因此 LibGdx 和 Box2d 对我来说是理想的框架。任何意见将不胜感激。
斯蒂芬大帝
相关分类