当前位置: 首页 > 知识库问答 >
问题:

Image ClickListener在LibGDX中的JustTouked方法之后工作

房项禹
2023-03-14

我正在使用libGDX制作2D Android游戏。

在我的游戏屏幕中,如果一个人只需单击屏幕,我的游戏角色就会跳起来。

现在,我在播放屏幕中添加了一个暂停图像。

当我测试这个时,我看到如果我单击暂停图像,游戏角色会首先跳转。然后游戏暂停。

但我不希望这样,我希望如果我单击暂停图像,不要跳,只暂停游戏。我该怎么做?

这是我的playScreen类的更新方法:

    @Override
    public void update(float dt) {

        pauseImg.addListener(new ClickListener() {  // I think, these lines work after.

            public void clicked(InputEvent event, float x, float y) {
                isPaused=true; //if pause image clicked,the game will be paused
            }
        });

        if(isPaused==false){ I think these lines work firstly.
            if (Gdx.input.justTouched()) {
                bird.jump();
            }      
        }
        .
        .
        .
    }

共有1个答案

王翰墨
2023-03-14

您不需要在每一帧中添加pauseImg监听器,只需在方法中添加即可。

如果你愿意,我想这应该行得通。

 类似资料:
  • 我试图在libgdx中使用Box2D,但不幸的是,我似乎无法理解它的工作方式。 这里有几个让我抓狂的例子: 最后,关节的值。我定义了一个多边形形状的体和一个地面体。现在我用旋转关节把这两个“固定”在地面的中心,目的是创造一个能在一定范围内很好地旋转的弹射器。 现在我还定义了一个鼠标关节,这样我就可以很好地来回拖动弹射器(多边形形状),但似乎我需要设置关节的maxForce到一个巨大的值,这样我就可

  • 我想我不明白render方法是如何工作的。 从我在网上读到的/在youtube教程上看到的,我发现render方法是一个循环函数,您可以使用它来保持游戏的更新和读取用户的输入。当您想要在屏幕中绘制一些东西时,您可以使用此方法,并且在绘制任何东西之前清除屏幕。 但是如果我想要静止地绘制一些东西,那么在render方法之外绘制它不是更好吗(这样计算机就不必多次清除屏幕并重新绘制所有东西)?我错过了什么

  • 最近,我决定制作一个新的游戏,并把那个机会给libgdx框架。很久以前,我曾经在Slick2D中制作一些游戏,我记得他们在更新(delta)和draw()对象时的方法是不同的,现在在只有render(delta)的libgdx中。所以我有了想法,抽象了游戏,并用更新和绘制制作了自己的类游戏和屏幕。然而,现在我对render方法中的参数delta表示怀疑。在互联网上看到一些关于libgdx的实现概念

  • 我正在尝试使用Complettable Future异步运行两个任务。该程序异步运行,因此a()和b()以任何顺序同时首先运行。但是c()只能在a()或b()之一完成后运行 我不熟悉CompletableFuture API,有没有办法检查其中一个任务是否完成并调用下一个方法C?

  • 我需要在Java项目中单击JButton后执行一个方法。我正在制作一个客户端-服务器游戏,在点击一个按钮后,我需要客户端/服务器开始等待,直到对手执行点击。问题是在action listener代码的末尾,我开始了一个循环,直到对手不再点击jbutton.. ListenServer()和ListenClient()是两个循环函数...单击后如何调用此方法???感谢并抱歉糟糕的英语

  • 我有三个类实现了LibGdx屏幕类: 主菜单屏幕,关卡选择屏幕,游戏屏幕 现在我有Main MenuScreen的setCatchBackKey设置为false,所以游戏将只退出后按。 LevelSelectScreen和GameScreen已将setCatchBackKey设置为true。 在GameScreen的渲染功能中,我有: 它将屏幕设置为显示level select,并且在LevelS