问题标签 [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 投票
1 回答
1189 浏览

java - 用于具有 2D 逻辑的 3D 游戏的 Libgdx scene2d?

我用 libgdx scene2d 开始了一个 2D 自上而下的游戏,我喜欢它的实现方式、逻辑以及程序员如何使用它(例如stage.act()调用actor.act(delta)每个已注册的Actor. 现在我想将这个逻辑用于 3D 游戏。我知道 scene2d 主要是为 UI 而不是为游戏制作的,尤其是不是为 3D 制作的。但我的 3D 游戏逻辑就像 2D 自上而下。让我解释一下:你,玩家,在迷宫里。您只能与墙壁发生碰撞,这些墙壁在每个高度上都是相同的。所以碰撞检测将与 2D 自上而下的相同。你也不能跳跃,只能向前、向后走……所以运动也与 2D 自上而下相同。只有视图,所以绘图,将是第一人称,所以是 3D。仅将scene2d滥用于逻辑并使用会不会很糟糕Model等等的3D绘图?我只是想使用scene2d,所以我不必编写自己的“所有注册的对象立即行动”方法。你怎么看待这件事?

0 投票
1 回答
1180 浏览

libgdx - libgdx:scene2d + box2d - 单位

我正在开发我的第一个 LibGdx (Scene2d + Box2d) 游戏,这对我来说是一个全新的领域,但仍然对一些事情感到有些困惑,尤其是关于单位。已经看到了几种不同的方法来处理它,但仍然不确定什么对我最好。

想知道使用舞台视口大小是否有任何缺点,例如:16x9(而不是常用的:800x480)为了避免转换 box2d => 舞台坐标,对 Box2d 对象以及舞台演员(精灵等)使用相同的大小/位置)?

0 投票
0 回答
65 浏览

java - LibgGDX 中 Actor/Sprite 的负宽度和高度

假设您有一个ActorusingScene2D并将其设置Bounds为负宽度和高度。将Actor正确绘制,但交互丢失。所有的ClickListener'sEvents将不再触发。如何调整LibGDX以在负宽度和高度下正常工作。如果这不可能,其他解决方案也会有所帮助。

0 投票
2 回答
3475 浏览

java - 覆盖绘图顺序scene2D的舞台

给你一个复杂的Scene2D图表,libgdx其中有几个Group'sActor's。您希望用户选择一些Actors并在最后绘制它们,以便它们看起来集中在任何其他Actors.

我想迭代Stage两次。第一次绘制未选中Actors的,第二次绘制选中的actors。但是,我看不到任何强制执行此行为的“好”方法。

我更喜欢干净的选项。我不想仅仅为了这个小小的添加而复制整个方法实现。

什么不起作用:

  • ( Actor's toFront) 方法只适用于它的兄弟姐妹。
  • 交换Actor's舞台中的位置:这会修改所Actors具有的变换。

需要考虑的场景:你有Root一个组gA和一个组gBGroup gA包含两个图像iA1iA2Group gB包含一个图像iB。假设首先将Group gA添加到阶段,并且图像iA1iB重叠;现在您要选择iA1并使其出现在iB上。我不想只打电话gA.toFront();这会将整个Group gA放在前面,这意味着iA2也放在前面。放iA2前面有将部分图像隐藏在Group gB内的不良影响

在此处输入图像描述

0 投票
1 回答
2092 浏览

java - LibGDX 标签未绘制

我正在尝试在屏幕上为我的游戏帮助屏幕绘制一个 LibGDX 标签,但是我没有从 JVM 收到任何错误,但标签文本不会绘制。

这是我的 HelpMenu 类:

这是我的主要游戏类:

这是我的皮肤文件:

这是帮助屏幕的屏幕截图: 截屏

如您所见,标签根本没有被绘制。所有文件都在正确的位置,从我从 LibGDX 文档中收集到的所有代码似乎都是正确的,但标签不会绘制。

0 投票
1 回答
601 浏览

user-interface - 在box2d之上渲染scene2d ui

我目前在 box2d 游戏区域上渲染 UI 时遇到问题。截至目前,该按钮呈现在屏幕的角落,但不会对点击做出反应,因为似乎屏幕认为它不存在。只有它的图片。下面是屏幕工作原理的代码。正在呈现什么顺序。在 spritebatch 开始和结束之前和之后的凸轮缩放、更新和设置是导致精灵在角落的测试,但它仍然没有做任何事情。我很困惑,希望能得到一些关于如何以一种好的方式处理渲染的建议。

0 投票
1 回答
2282 浏览

libgdx - LibGDX Scene2D:动作对组内的演员根本不起作用

我正在尝试使用 Action FadeOut 将 Actor 淡出。但是,我发现 no 操作对我的对象根本不起作用。我的类的层次结构是这样的:

我的骑士演员的行动根本不起作用。但是,我的 KnightGroup 组的操作有效。这是我的骑士的代码:

我一生都无法弄清楚问题所在。(Knight 的父级)中的操作MoveableObject也不起作用。我最好的猜测是,将演员包裹在这些演员的Group遗嘱renderactions无效。虽然这KnightGroup是我的代码中非常重要的部分,但我必须进行大量重构才能将其删除。其他人可以阐明这个问题吗?

0 投票
2 回答
2035 浏览

grid - LibGdx: most efficient way to draw a checkerboard in background

I am building a game with libgdx. The game screen is a grid with Scene2D actors. Actors are displayed on the front. I would like to draw a background that looks like a checkerboard, coloring every 2 cells with one color and the other cells with another color.

It is easy to do but I was wondering if there are classes in libgdx that could optimize such a background, to make it as light and optimized as possible. For example, coloring each cell individually should work but doesn't seem like the best approach.

I have started to dig into the TiledMapTileLayer class but I'd have to fill each cell with a Tile object and that seems heavier than just a color.

Ideally, I would like to simply define 2 colors, set coordinates of the cells, and fill them with the colors without having to use objects or color the cells one by one.

What would be the best approach?

0 投票
1 回答
474 浏览

java - LibGDX - Scene2d 无法点击小部件

我在我的应用程序中创建了一个显示文本字段和按钮的屏幕,但由于某种原因我无法单击它们。你知道可能是什么原因。这是我的代码(我跳过了变量声明):

0 投票
2 回答
4964 浏览

java - Libgdx stage2d 与另一个用于 HUD 的摄像头,如何处理坐标?

我在我的游戏屏幕中使用了一个舞台。在这个阶段,我有一些演员,比如游戏地图(玩家可以在其中移动,并且舞台的摄像机沿着移动并缩放(或重新定位)以将视口保持在地图内)、玩家和其他游戏内容。然后我添加了一个通过扩展 Group 制作的 HUD 元素:

在这个类中,我定义了一个新的 OrthographicCamera:

我想用这台相机让 HUD 在屏幕上保持静止。我是这样画的:

绘图工作正常,但问题是(触摸和其他)事件。他们有错误的坐标。我该如何解决这个问题。我试图覆盖 hit(float x, float y, boolean touchable) 方法并考虑覆盖 localToParentCoordinates 和 parentToLocalCoordinates 方法。但是我会在其中放入什么(在绘图时乘以 hudCamera.combined 或类似的东西)?还是我认为这一切都错了?

我还担心,当我在舞台的相机中使用变焦时,它会弄乱坐标。这是现实吗?