java - 如何从菜单切换到 3D FPS 设置? (libGDX)

标签 java libgdx

我目前正在练习和编写一个简单的菜单,可以通过按按钮切换到主游戏。

主游戏是 3D 的,使用 libGDX 用于创建 3D 环境的所有功能。该菜单是使用舞台构建的。我分别构建了 Menu 和 Render/FirstPerson 类,以确保它们能够独立工作,而且确实如此。

package com.mygdx.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.mygdx.game.FPSSystem;
import com.mygdx.game.RenderingSystem;

public class MainCoreLoop extends ApplicationAdapter {

    public MenuSystem menuSystem;
    public RenderingSystem renderingSystem;
    public FPSSystem fpsSystem;

    public boolean isGameOn;

    @Override
    public void create () {
        renderingSystem = new RenderingSystem();
        fpsSystem = new FPSSystem();
        menuSystem = new MenuSystem();

        renderingSystem.create();
        fpsSystem.create();
        menuSystem.create();
    }


    @Override
    public void render () {
        isGameOn = true;

        if (MenuSystem.isMenuClosed == true) {
            isGameOn = true;
        }

        else if(isGameOn == false) {
            Gdx.gl.glClearColor(0, 255, 0, 0);
            Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);


            menuSystem.render();
        }

        if(isGameOn == true) { 
            Gdx.gl.glClearColor(255, 0, 0, 0);
            Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT|GL20.GL_DEPTH_BUFFER_BIT);

            fpsSystem.render();
            renderingSystem.render();


            }

    }

    @Override
    public void dispose() {
        menuSystem.dispose();
        fpsSystem.dispose();
        renderingSystem.dispose();

    }

}

我有一个处理渲染的 RenderingSystem 类,一个初始化另一个类 FPSCameraController 类的 FirstPersonSystem 类,该类控制逻辑和输入,代码借用了 libGDX 附带的 FirstPersonCameraController 类。

所以我可以一起测试这些类,我使用了一个名为 isGameOn 的 boolean 值,它运行得很好。经过一段时间的测试和重构,我设法让除了输入之外的所有内容都正常工作。按“新游戏”后,3D 框呈现完美,但输入不起作用。如果我将 boolean 值更改为 true,它将呈现该框,但仍然没有输入。

代码似乎独立工作,但尝试将它们组合在一起对我来说有点棘手。

我认为这可能是代码顺序问题,但我很困惑。我是 libGDX 的新手,过去我断断续续地认真使用 Java 工作了一段时间,所以我的代码基础知识可能会阻止我弄清楚这一点。

其余代码在github上 Here

任何帮助\见解\侮辱将不胜感激。谢谢!

最佳答案

answered one problem关于使用GameScreen LibGdx 中的类可以更好地进行切换,这可能对您的情况有所帮助。

Game/Screen tutorial该片段使用 Gdx.input.鼠标、键盘和触摸事件的方法。

剩下的事情应该相当简单。

关于java - 如何从菜单切换到 3D FPS 设置? (libGDX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46366276/

相关文章:

java - mp3 文件格式

java - 哪个 Java 包包含高等数学函数?

java - 将 table 放置在 table 中的 Actor (LIBGDX)

box2d、setTransform 和碰撞

java - libgdx 中多个摄像机和视口(viewport)的问题

java - Apache Camel Bean 中的动态 PropertyInjection

tomcat - jersey restful webservice tomcat版本

java - 自定义检查组合框

java - 将 Admob 添加到 Libgdx 游戏

libgdx - UV映射不适用于导入的obj文件