问题标签 [scene2d]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
12693 浏览

android - 如何在 libgdx 中绘制 Button 类

我知道 libgdx 有这个Button看起来很容易使用的类,但我想知道为什么该draw方法设置为受保护?

在那种情况下,我应该如何绘制按钮?

Scene2d 按钮

0 投票
1 回答
1134 浏览

java - 使用 libgdx Actor 类和 SpriteBatch 绘制网格几何体

我正在考虑使用 scene2d 包来渲染简单的矩形几何体(用于简单精灵)和更复杂的网格几何体(用于其他事物)。

在我看来,具有 Actor 组的舞台将是管理渲染元素之间的层次关系的好选择,并非所有元素都由简单的矩形精灵定义。

这种方法正确吗?(即。我是否“在 libgdx 中思考”)如果是,我如何在 Actor draw() 方法中渲染 Mesh 对象?

0 投票
1 回答
1549 浏览

android - 在 Scene2d 中,当一个动作完成时,它会从 Actor 中移除,但不会放回池中

在 Scene2d 中,当一个动作完成时,它会从 Actor 中移除,但不会放回池中。

动作类

似乎 Action reset() 方法(这是发送到池的唯一位置)(1)当 Actor 的操作数组被清除时,它永远不会被调用,并且随后不会发生对池的备份。 ..

(1) - 在以前的版本中,我们可以覆盖 finish() 方法并将 Action 发送到池中,但该方法不再可用...

当我尝试将 Action 类扩展到这个时,我遇到了这个问题:

TimelineAction.class

最初的想法来自netthreads

我注意到每次添加一个动作时,它都会创建一个新对象(TimelineAction action = new TimelineAction())而不是返回一个池化对象。然后我试图通过覆盖他的reset()方法来追踪 Action 的结尾,以找出它是否被调用过……但事实并非如此。

顺便说一句,在 TimelineAction 完成 (2) 后,Timeline 及其 Tweens 对象已成功发送到各自的池:

(2) - Timeline.getPoolSize() 返回 1,Tween.getPoolSize() 返回 2

所以,我需要一些帮助在这里,拜托!:S

提前谢谢,请原谅我糟糕的英语。;)

Libgdx 版本 0.9.6 (24-07-2012)

0 投票
1 回答
4796 浏览

android - 如何使用scene2d绘制TiledMap

我想使用 libgdx 创建一个基于平铺的游戏,我找到了这个教程

Box2d 平铺地图

TileMapRenderer 有它自己的渲染器来绘制瓷砖地图。我想使用scene2d 进行平铺渲染,因为我习惯于使用Scene2d 做事。同样使用 Stage 类,输入之类的事情更容易做到。是否可以使用 Actor 类实现此图块渲染?我可以只使用场景图而不使用 Actor 类的 draw 方法中传递的 spritebatch 吗?

0 投票
1 回答
5422 浏览

java - 为什么 Libgdx 的 Table 不接受缩放动作?

我在 libgdx 库中使用 scene2d 在我的游戏中创建一些 UI。

我使用了一个表格,我想在用户触摸时采取一些缩放动作以使按钮具有触摸感。

当我使用任何其他“Actor”类型(如 Group)并给它一个缩放动作时,它可以工作,但不能使用 Table。

这是我的表定义:

在我的 touchDown 事件中,我给它一个缩放动作:

在 touchUp 中,我给它另一个动作来获得原始比例:

正如我所说,此代码适用于其他类型的 Actor,例如 Image 和 Group。有什么想法为什么不适用于表格?

0 投票
3 回答
3220 浏览

java - Scene2d touchDown 不会在 Actor 上触发

我创建了一个简单的测试,其中touchDown()包含图像演员的事件。该事件在舞台上有效,但对演员无效。这是代码:

InputProcessor在父类(AbstractScreen)的构造函数中设置了。

在子类中:

我在桌面和安卓上都进行了测试(结果相同)。我得到了“下台”事件,但没有得到演员的事件。我也试过没有舞台活动。

0 投票
1 回答
1027 浏览

android - Android游戏不会在手机上显示scene2d阶段

我正在练习为 android 制作游戏,在 Eclipse 中使用 libgdx。在我的第一个屏幕中,我在舞台上添加了一个 TextButton 和一个 Label。当我启动桌面应用程序时,会显示带有标签和按钮的舞台。但是,当我在手机(Android 2.2)或模拟器(Andorid 2.2 和 4.03)上启动 Android 应用程序时,什么都没有显示,只显示一个空白屏幕。我在 logcat 或控制台中看不到任何错误。

logcat 显示一个复制位“打开帧缓冲区时出错 errno=13(权限被拒绝)”,但我认为这不是原因。

我检查了我的 java 构建路径,一切似乎都很好。在到处谷歌搜索之后,这是我发现的唯一一个类似的帖子:libgdx 游戏在 android 手机中不起作用。在投票最多的答案中,用户“nEx.Software”评论“不工作是指只显示一个空白屏幕吗?这是因为桌面启动器创建了一个新的 ScreenTest() 实例,而 Android 启动器创建了一个新的 ScreenGame( )。” 我认为这可以解决我的问题,但是我不完全理解他/她的评论。

下面是我的 android 入门类的代码:

编辑

下面是我的游戏 Main.java 类的代码:

任何帮助将不胜感激。

更新

我发现它在我的手机上显示,但是舞台不在屏幕上,无论如何谢谢

0 投票
2 回答
684 浏览

java - getX() 调用上的 NullPointerException (Scene2d + Libgdx)

我正在尝试创建一个简单的 BreakOut 克隆来熟悉 LibGDX 和 scene2d。但是,在组装了一个非常基本的示例以开始使用之后,我在一个定义非常明确的对象上得到了 NullPointerException。

我有一个名为 Paddle 的 Actor 类,它在我的程序中有一个名为 paddle 的实例。它被声明为全局变量并在 create() 方法中初始化。当我运行程序时,它会在代码中的 render() 方法中返回一个错误,用于检查桨是否超出屏幕边界:

这是返回的错误:

这是 Paddle 类;

这是代码,以防有助于查看整个内容。

编辑:感谢评论,我找到了答案:我意识到我在发布后立即错过了什么 - 看起来我重新定义了 paddle 变量的范围(通过使用 Paddle paddle = new Paddle(...))在本地方法而不是全局。因此,当它试图访问该对象时,它总是返回 null,因为该对象在 create() 方法之外是不可访问的。

如果您的 Actor 在基本调用中无法正常工作,这可能是您的罪魁祸首。

0 投票
2 回答
11112 浏览

java - 将 libgdx 项目导入 Eclipse 时未绑定的类路径变量 junit 和 log4j

我正在尝试导入并运行此处列出的项目:

Scene2d 动作和事件处理

我首先下载 zip 文件,然后将其导入 Eclipse。从这里我得到以下三个错误(在解决了与不正确的android版本有关的其他错误之后):

有谁知道如何解决这个问题?我注意到这个 junit 应该包含在 eclipse 的 JDT 中,但我已经安装了它,但没有改变错误。谢谢。

0 投票
0 回答
1116 浏览

java - LibGDX scene2d 舞台不显示按钮

我有一个场景 2d 阶段,它应该显示按钮和触摸板,但它没有。它只是显示一个黑屏。这就是我正在做的事情:

皮肤.json

控制器.java

应用监听类

我正在使用 LibGDX v 0.9.7。这段代码几天前工作得很好,由于某种原因它不再工作并且不会生成错误消息。代码中引用的文件都存在:在 LibGDX 资产文件夹中的数据文件夹中。想法?