我是Scene2d的新手,所以我有点困惑。想象一下,我们有这两个类:
public GameScreen implements Screen {
//override methods
}
public GameX extends Game {
//override methods
}
这两种方法都有渲染和调整大小等方法,所以我的问题是:
哪一种都是包含舞台/演员和Box2d内容的最佳方法?
答案 0 :(得分:0)
Game
课程实际上是游戏的核心。它的方法由GameLoop
调用,或者如果发生某些事件则调用
每个游戏都可以有多个Screen
,例如MenuScreen
,PlayScreen
,OptionScreen
或CreditsScreen
。
所以Screen
代表游戏的一部分
Game
课程一次可以有一个有效Screen
,并且在其自己的渲染中为reder()
调用Screen
。 pause()
和resume()
的计数相同
如果您更改了有效Screen
,则会为旧hide()
调用Screen
和show()
。
所以问题的答案是,如果您的Screen
非常简单并且不包含不同的Game
,那么您可以将Screen
放在Stage
内将Game
类视为您的Game
类,并将其视为Screen
如果您有多个Screen
,则应使用Screen
界面并在其中一个Stage
条中设置Screen
。
答案 1 :(得分:0)
我使用两者,因为Game类可以在屏幕setScreen
之间切换。通常我首先加载loadingScreen
,在加载完成后加载所需的资产我切换到mainMenuScreen
。但是你可以把一些演员放在游戏类中并从那里加载屏幕实现,这没关系。
但是对于干净的方法,我建议只需从Game
create
方法调用加载屏幕并从那里构建。由于每个游戏至少需要某种菜单和游戏屏幕。