gpt4 book ai didi

java - 将正交相机合并到现有的 java 游戏中

转载 作者:行者123 更新时间:2023-12-01 13:18:58 25 4
gpt4 key购买 nike

之前发布过类似的内容。这是后续行动。我有一个以前存在的 java 游戏正在进行中。大约完成了95%。如果我安装 libGdx,我可以使用以前存在的 java 代码和 LibGDX 的正交相机来创建 Android 应用程序吗?我计划仅使用相机来调整屏幕尺寸,使其适合手机。我不会使用 spritebatch 等其他任何东西。有人有这方面的经验吗?

最佳答案

那会起作用的。您关心的方法不依赖于 libgdx 引擎中的 GL 上下文,因此您可以实例化 OrthographicCamera 并在您自己的游戏代码中正常使用它。

使用空构造函数实例化 OrthographicCamera,然后使用屏幕视口(viewport)所需的宽度和高度对其调用 setToOrtho。这将取决于您使用的 Sprite 比例单位,但您可以执行以下操作来设置视口(viewport):

private static final float MIN_SCENE_HEIGHT_IN_GAME_UNITS= 480f; //FOR EXAMPLE
private static final float MIN_SCENE_WIDTH_IN_GAME_UNITS= 760f;

if (((float)screenWidthInPixels/(float)screenHeightInPixels) > (MIN_SCENE_WIDTH_IN_GAME_UNITS/MIN_SCENE_HEIGHT_IN_GAME_UNITS)){
orthoCam.setToOrtho(false, MIN_SCENE_HEIGHT_IN_GAME_UNITS*(float)screenWidthInPixels/(float)screenHeightInPixels, MIN_SCENE_HEIGHT_IN_GAME_UNITS);
} else {
orthoCam.setToOrtho(false, MIN_SCENE_WIDTH, MIN_SCENE_WIDTH_IN_GAME_UNITS*(float)screenHeightInPixels/(float)screenWidthInPixels);
}

上面的 false 使 y 指向上方,因此您可以根据需要翻转它。如果需要将相机移动到 0,0,请调用 orthocam.position.set(x,y,z),然后调用 orthocam.update()

然后你可以从orthographicCamera.combined中获取你需要的矩阵。

如果您使用的是 GL ES 1.0,您可以这样设置矩阵:

gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadMatrixf(orthographicCamera.combined.val, 0);

否则,您可以直接在着色器中使用orthographicCamera.combined

您还可以将 OrthographicCamera 类及其父类(super class) Camera 克隆到您的项目中,并删除您不会使用的方法来删除对引擎其他部分的依赖关系,并将其切换为使用您自己的 Vector3 和 Matrix4 版本。

关于java - 将正交相机合并到现有的 java 游戏中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22206329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com