我们正在开发一个使用libgdx的游戏,我们希望能够切换屏幕 . 我制作了一个GameOverScreen,它实现了Screen:
public class GameOverScreen implements Screen {
}
我的问题是我不知道如何在我的主类中设置屏幕 . 我看过的大多数例子都显示了一个扩展Game的主要类(com.badlogic.gdx.Game) . 但是我们的主类实现ApplicationListener并且不扩展Game:
public class Game implements ApplicationListener {
}
因此我无法使用Game类中的setScreen方法 . 那么如何在我的主类游戏中更改屏幕?
3 回答
首先
Game
是预定义类,因此请为您自己的实现使用不同的类名而不是Game
.com.badlogic.gdx.Game
只不过ApplicationListener
,它只有Screen
的引用,所以有setScreen()
方法 .使用
Game
扩展您的Main(origin)
类,而不是编写自己的实现,因为您需要在游戏中进行Screen
转换 .SE的一些规则:
Never Write the Same Code Twice.
Don't use hand to break a brick if already you've hammer.
com.badlogic.gdx.Game除了实现ApplicationListener之外什么都不做 . 有一些简单的选择:
所以你可以扩展com.badlogic.gdx.Game而不是实现ApplicationListener
与com.badlogic.gdx.Game相同 . 例如:
主要你需要3个 class
ScreenManager类
抽象屏幕类(可选)
ScreenEnum(枚举)
播放屏幕和主菜单屏幕将从摘要屏幕扩展 . Screenmanager根据screenenum的屏幕代码切换屏幕
**** Screen Enum Class ****
ScreenManager Class
AbstarctScreen Class (Optional class)
Screen Switch