java - Libgdx:如何从另一个输入处理类访问/修改 Box2D World?

标签 java libgdx box2d

我正在开发一款小游戏,我正在努力让事情尽可能整洁。我已将输入处理器分成另一个类,并且它工作正常。我还设置了一个 playState 类,用于处理和创建 Box2D 的主体和固定装置。

在我的输入处理类中:

public class TouchProcessor implements InputProcessor  {

    //.....

    @Override
        public boolean touchDragged(int screenX, int screenY, int pointer) {
            System.out.println("Dragging...");
            touchHappening = true;

            return true;
        }

    // ....

现在,通过触摸拖动,我想重新定位 Box2D 世界中的主体/相机。但如果我将 Processor 类与 playState 分开,我将无法访问它们。我该怎么办?

最佳答案

每次解耦应用程序部分(顺便说一句,这是一个好主意)时,您都需要制定不同部分如何协同工作的策略。

一种常见的解决方案是使用某种中央单例来使重要的游戏方法可以从其他代码访问。但单例有自己的flaws 。另一种方法是在这里使用某种事件系统。

您可能想看看这些decoupling patterns获得一些关于优秀游戏架构的想法。

关于java - Libgdx:如何从另一个输入处理类访问/修改 Box2D World?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40528612/

相关文章:

c++ - 半空间到点测试

java - jgit - 基于文件扩展名的 git diff

java - 方法参数必须是实现某个接口(interface)的某个类的obj

Libgdx:监听 TextField 上的点击

java - 在 libgdx 中渲染 Box2D 链形状

java - Libgdx java,纹理更新方法困惑

c# - Box2D XNA 中的 Pong

c++ - 在运动过程中禁用 Sprite 旋转

java - 从 spring 检索代理实例

java - SERVER_ERROR : [code] 1675030 [message]: Error performing query