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

整个应用程序的LibGDX公共sprite批处理

冷浩瀚
2023-03-14

这里手头的问题是,在Game类中有一个公共SpriteBatch是不是一个好主意,然后所有屏幕都使用它。这将避免在活动屏幕发生变化时重新分配对象。

然而,我看到人们在每一个屏幕上都使用新的和私有的SpriteBatchs。为什么人们要这样做?我是不是漏了什么?

共有1个答案

甘学潞
2023-03-14

建议使用单个batch实例,但我认为公共(或静态)变量不是一个好主意,因为它们破坏了封装,使重构代码变得更加困难。想象一下将screen类移动到另一个应用程序中:您将不得不替换game扩展中对批处理的所有引用,或者您将被迫在另一个项目中创建这样的字段。

相反,我会在屏幕构造函数中传递批处理。毕竟,屏幕是用来显示视图的:不需要通知他们应用程序的其余部分。

 类似资料:
  • 在运行.NET Core3.1控制台应用程序时,我正在尝试获取应用程序的见解,以便在azure批处理作业/任务中工作。 https://docs.microsoft.com/en-us/Azure/Batch/Monitor-Application-Insights https://docs.microsoft.com/en-us/Azure/Azure-monitor/app/worker-se

  • 我使用的是libgdx 1.2.0+eclipse。我想在游戏画面中从一个类中绘制多个精灵,但只绘制了一个精灵。这是我的渲染方法

  • 问题内容: libGDX应用程序必须实现.resize(int width,int height)方法,因此我认为调整libGDX应用程序的大小并不重要,但是我发现没有办法制作实际的应用程序JFrame或与JFrame一样可拖动的东西。 setResizable(true)。libGDX根本不可能吗? 问题答案: 如果您将gdx-backend-lwjgl用于桌面应用程序,则可以使用: 使用来自S

  • null 这是我第一次尝试将Firebase集成到我的一个项目中,因此一些关于实现这项任务的指导将是非常有用的。 谢了!

  • 我准备在Windows10上开发一个libGDXAndroid应用程序,最新的EclipseMars。2、最新Android SDK和最新版本的libGDX。我将按照此处的设置说明进行操作:项目设置Gradle 在这里: 设置开发环境(Eclipse、Intellij IDEA、NetBeans) 这里呢 渐变与日食 我当我运行我的Android应用程序它崩溃与输出在logcat: 知道我做错了什

  • 我正在用一艘宇宙飞船做一个游戏,当按下“前进”按钮时,后面会出现一个火的图像。这只在太空船垂直站立时起作用。当它倒转时,它与宇宙飞船的后部没有完全对齐。这是我为其创建的类的更新函数。 我试着将原点设置为火箭的原点,这对我来说似乎是合乎逻辑的,但我认为我不完全理解原点是什么。 [编辑1] 我不认为问题出在原点上,我现在把它设置为 我认为这个问题与我总是将y设置为(火箭弹射出的火的高度是火箭弹高度的一