从文档中,ScreenAdapter是Screen的便捷实现。我不确定何时更好地实现Screen和扩展ScreenAdapter。以某种方式做到这一点有什么特别的好处?
答案 0 :(得分:6)
ScreenAdapter
实现Screen
,因此实践中的结果将是相同的。但代码看起来会有所不同。
ScreenAdapter
的便利性是它提供了一个默认的空实现。因此,您不必使用您不需要的@override
方法,从而保持代码清洁。
然而,java并不支持扩展多个类。例如,您无法延伸ScreenAdapter
和InputAdapter
。在这种情况下,您必须选择扩展哪一个,并且您必须实现(编写代码,即使您不需要该方法)另一个。
请务必查看来源并亲眼看看,这并不神奇: https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/ScreenAdapter.java
那说;方便不必实现方法,可能会让你忘记那些方法。例如,如果您实施ApplicationListener
,那么您将面临应用程序的生命周期,但如果您延长ApplicationAdapter
,则可能很容易忘记,例如resize
或dispose
方法。因此,在创建教程等时,我通常会使用ApplicationListener
。另一方面,当我需要编写快速测试或类似的时候,我使用ApplicationAdapter
。