我是libgdx的新手(不是java的新手),我尝试做我的第一场比赛...
为什么我在这里...我不想在这个新游戏的旅程结束时发现我用错误的方法或错误的对象开始,我的一生通过这样做来学习(24年这样做),我太老了,不能重新开始:O)
非常简单的游戏,我有一个充满单元格的屏幕(100x100单元格),我将这些单元拖放到这些单元格上并升级或删除它们(等等......)另外我需要有一种弹出窗口我将图像放在单元格或演员身上。
我想知道的是最好的方法是什么,我已经尝试了使用拖放和hexes网格的libgdx示例。使用舞台和演员进行拖放操作,并且仅使用地图和单元格制作十六进制网格。
我认为最好的方法是舞台上的演员事,如果这是完美的方式,我是否使用相同的方法来构建它,我做一个循环(像细胞)但我创建演员或我可以使用简单的地图事物并将actor放入那些单元格中
另外,我如何处理所有细胞/演员的掉落,当我看到拖放示例时,这个问题一直困扰着我。
无论如何都有很多问题,但我只想要一个简单的答案,我应该继续我的旅程......一个充满演员的舞台或一个充满细胞的地图。如果您有一个很好的例子来展示如何处理特定细胞或演员的下降,欢迎您:O)
非常感谢旧计时器
答案 0 :(得分:2)
如果游戏是2d,那么Actor
方法确实是可行的方法。我有一个基于十六进制的游戏,其中单位被移动并使用Actor
类作为六边形和单位。
每个Actor
都有一个draw
回调,当Actor
被添加到Stage
并且stage.draw
在屏幕{{}}中被调用时执行1}}回调。
每个演员都可以添加一个render
来处理触摸事件。为此,您必须先创建InputListener
并使用InputMultiplexer
方法添加当前Stage
。然后,Gdx需要知道新的.addProcessor()
,因此请调用InputMultiplexer
,其中x是Gdx.input.setInputProcessor(x)
变量的名称。
现在只需将InputMultiplexer
个类添加到舞台,并让每个Actor
调用Actor
,其中y是x.addListener(y)
的子类。
总之,我的map类看起来是一个InputListener
子类,并且具有:
Screen
类Stage
类InputMultiplexer
的{{1}}类,我将Group
类添加到Stage
的每个Actor
个类都有Actor
个注册Group
有一个render()回调,其中InputListener
类的Screen
方法被称为draw
,设置其视口并调用Stage
方法希望这有帮助!