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

LibGDX flappy bird克隆,场景2D演员(按钮)

公羊玉泽
2023-03-14

所以,我正在开发一个flappy bird克隆。我设计了一个按钮,可以让鸟弹跳。我还想为这个按钮画一些东西(在这一点上完全不相关)。但不是每次按下按钮时。我已经试过了:

if (Gdx.input.isTouched()) {
        batcher.draw(birdRed, bird.getX(), bird.getY(),
        bird.getWidth() / 2.0f, bird.getHeight() / 2.0f,
        bird.getWidth(), bird.getHeight(), 1, 1, 1);
    }

但这就是我现在想要的。我特别想在第一次按下按钮时画一些东西。我希望你能理解我的问题。谢谢你的帮助。

共有2个答案

融宏伟
2023-03-14

如果您使用按钮演员,那么您可以处理更改事件并使用一些布尔标志来保持它的第一次按下状态。

private boolean wasPressed = false;

按钮初始化代码中的某个地方:

Button pushBirdButton = new Button();
pushBirdButton.addListener(new ChangeListener() {
    @Override
    public void changed(ChangeEvent event, Actor actor) {
        wasPressed = true;
    }
});

然后你可以随时检查你的按钮是否按下。

鲁炳
2023-03-14
boolean touched = false;

...

if (Gdx.input.isTouched() && !touched) {
    touched = true;
    batcher.draw(birdRed, bird.getX(), bird.getY(),
    bird.getWidth() / 2.0f, bird.getHeight() / 2.0f,
    bird.getWidth(), bird.getHeight(), 1, 1, 1);
}
 类似资料:
  • 我是libgdx的新手,很享受它为我提供的学习。 我目前正在创建一些自定义演员(扩展演员类),并在屏幕上移动他们。 我的问题是,当使用setX()、setY()移动参与者时,如何使用作为act方法参数提供的传入浮点增量来正确缩放它? 实例 我怎样才能正确地用增量来缩放运动?在libgdx Actor类中是否有用于此的内置函数?

  • 我对游戏编程相当陌生,刚刚开始考虑用libgdx构建我的第一个2d游戏。我已经搭建了一个舞台,演员们被吸引到屏幕上,通过动作、寻路等等。但是,当我创建几个阶段时,对于“Stage”类的用法,我有点困惑。最好的解决方案是只为所有扩展Stage的每个级别创建类,还是不需要,最好的解决方案是为每个级别创建类,并在其中包含一个Stage对象?希望这个问题不要太混乱,提前谢谢!

  • 问题内容: 我有一个prefHeight = 70 //没有prefWidth或任何宽度的HBox … 我也有一个prefWidth = 50 //没有prefHeight或任何高度的窗格… 我只想使用某些循环将窗格的多个实例添加到HBox。 当我在循环主体中添加(pane)时,出现以下错误。 我需要找到克隆窗格的方法(因为它按值传递)。有人可以帮我吗?(对我来说,拍摄快照不起作用,因为未使用父级

  • 我正在开发一个flappy bird克隆,我真的被我想要创建的按钮卡住了。对不起,我知道这是一个基本问题,但我是初学者,我真的需要你的帮助。所以,游戏已经基本完成了,但是我想做一个按钮来做同样的事情,而不是触摸整个屏幕让一只鸟跳起来。这是我的InPurthandler课程: 我在GameScreen类中创建了一个舞台和一个演员(按钮)(它不工作),并在屏幕上显示,但我不知道下一步该怎么做。再一次,

  • 我有父母和孩子。每个儿童演员控制一个装置。当我创建所有的子角色时,我给他们一个uuid。 每个子参与者都是通过设备配置创建的,当配置更改时,我希望通过以下方式重新创建参与者: > 停止旧的: 最终的未来停止了=优雅的停止(actorRef,Duration.create(1,时间单位。秒)); Await.result(停止,Duration.create(1, TimeUnit.二)); 重新创

  • 主要内容:示例在某些情况下,您可能需要一个表的完整、精确副本,也即克隆表(复制表)。我们首先想到的是使用 CREATE TABLE 命令创建一张新表,然后使用 SELECT 命令从旧表中选取所有数据,并使用 INSERT 命令插入到新表中。但是这种做法可能达不到您的目的,因为副本必须包含相同的索引、约束、默认值等。 如果您使用 MySQL 数据库,可以借助 SHOW CREATE TABLE 命令,该命令用来展