有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

LibGdx中的java输入操作处理

我正在做一个libgdx游戏作为练习。这很简单,有点像“逃跑”之类的游戏。只有背景屏幕、一些项目和左/右箭头

由于libgdx使一切都变得简单,我想知道是否有一种简单的方法来处理操作。现在它只是onClick()方法中的一组“if-else”语句。现在它很好,但如果有几十个或更多的项目,点击它就会变得杂乱无章,而且可能会拖拖拉拉

public void onClick(int scrX, int scrY){
    pX = (scrX/viewW)*WORLD_W;
    pY = (scrY/viewH)*WORLD_H;
    if (pX > 10 && pX < 20 && pY > 10 && pY < 20) {
        if (stage.getInfo().getLeft() == true) {
            Gdx.app.log("Click", "Left");
            stage = new StageGame(stage.getInfo().getLeftStage());
        }
    }
    else if(pX > 80 && pX < 90 && pY > 10 && pY < 20) {
        if (stage.getInfo().getRight() == true) {
            Gdx.app.log("Click", "Right");
            stage = new StageGame(stage.getInfo().getRightStage());
        }
    }
}

我想在这里切换,但我仍然需要使用一些条件。 另一个想法是矩阵,比如说100x100。每个阶段都会从文件中读取。单击后,x和y将很容易地转换为网格值,并且会发生正确的操作。但这只适用于静态游戏,而不是舒尔的内存使用和矩阵处理

我是舒尔,这完全错了,但我找不到我无法命名的东西:p 请帮忙


共 (1) 个答案

  1. # 1 楼答案

    我认为您可以使用Libgdx Actors基础设施(又名Scene2d)来帮助组织屏幕上的元素。演员可以在屏幕上有一个位置,以及他们自己的onClick处理程序。Libgdx将负责确定单击了哪个参与者,并将调用其处理程序。见When to use actors in libgdx? What are cons and pros?https://github.com/libgdx/libgdx/wiki/Scene2d

    顺便说一句,除非屏幕上有1000个对象(然后还有其他问题),否则你真的不需要担心点击检测的性能。此时,我更担心的是如何使代码可维护和可调试