LibGDX/Java开发:在类之间传递游戏对象

LibGDX/Java开发:在类之间传递游戏对象,java,libgdx,screen,dispose,Java,Libgdx,Screen,Dispose,我正在创建一个android应用程序,由三个屏幕和一个在它们之间传递的游戏对象组成 仅在游戏开始时使用的菜单屏幕。这不会更改GameObj,只会将屏幕设置为GameScreen 玩家躲避落下的方块,而GameObj.timer测量玩家活着的时间的游戏屏幕。当玩家与坠落物体碰撞时,屏幕设置为EndScreen EndScreen通过访问GameObj.Timer列出玩家的生存时间,并有一个按钮将屏幕设置回GameScreen 信息在第一次正确地从游戏屏幕传递到结束屏幕,但当按下重置按钮并将屏幕

我正在创建一个android应用程序,由三个屏幕和一个在它们之间传递的游戏对象组成

  • 仅在游戏开始时使用的菜单屏幕。这不会更改GameObj,只会将屏幕设置为GameScreen

  • 玩家躲避落下的方块,而GameObj.timer测量玩家活着的时间的游戏屏幕。当玩家与坠落物体碰撞时,屏幕设置为EndScreen

  • EndScreen通过访问GameObj.Timer列出玩家的生存时间,并有一个按钮将屏幕设置回GameScreen

信息在第一次正确地从游戏屏幕传递到结束屏幕,但当按下重置按钮并将屏幕设置为游戏屏幕时,计时器不会重置回0,并且前一个游戏中的块仍然存在

最初我使用了GameObj.setScreen(新的GameScreen(这个));但这会造成漏洞,因为以前的游戏屏幕从未被删除

我想知道在LibGDX中是否有办法处理整个屏幕(而不仅仅是纹理)并创建一个新的屏幕


提前谢谢

首先:不要使用
游戏
类作为计时器。
计时器
仅属于
菜单屏幕
结束屏幕
。因此,您可以传递
计时器
,而不是
游戏
对象。
游戏
对象只能用于更改
屏幕
。对于您的问题:每个
屏幕
都有一个
隐藏
显示和一个
处置
方法<当您将
屏幕切换到另一个
屏幕时,将为当前
屏幕调用code>hide
。如果是
游戏屏幕
,您应该在那里重置
游戏世界
,如果是
结束屏幕
,则重置
计时器
。在
show
方法中,您可以重新创建
GameWorld
,而不是创建像GlobalStuffs这样的类,并添加一个公共静态对象,以便您可以在任何地方使用它?