java-将MVC与libgdx scene2d结合使用

我开始使用libgdx开发游戏.实际上,这是我的第二次尝试,因为当我开始第一次尝试时,我并不了解libgdx.在我的第一次尝试中,我有一个actor子类,其中包含逻辑和纹理.然后我开始阅读Gustavo Steigerts tutorial,我发现他试图分离逻辑和视图.我尝试做同样的事情,但是视图是我的actor子类,其中包含有关大小和位置的信息,因此它必须进行碰撞检测,这是逻辑的一部分.另外,如果您在Google上搜索,则会发现使用Scene2d无法执行MVC.
那么,有没有一种方法可以使用MVC来实现Scene2d游戏,还是我应该忽略这种模式,并在扩展actor的一类中拥有模型和视图?

解决方法:

这是一个主要基于意见的问题,但是涉及到scene2d和MVC模式时,这个问题经常出现.

总的来说,像Model-View-Controller模式试图做到的那样分开关注是很有意义的.使用scene2d并不是那么容易,因为Actor已经具有act()和draw()方法.

在我看来,您应该始终像对待游戏世界(实体)那样建模.应该有一个球员,也许是一个火箭队,或者是一个兔子类/演员/实体,他们应该知道他们需要了解和管理自己的一切.这与实体系统框架相反,在实体系统框架中,实体由“部分”组成,而这些部分则由外部系统控制.

大多数时候,将所有内容放在一起会使它也变得更加灵活,因为您已经将所需的一切都集中在一个地方.您的游戏玩法可能会改变,您的实体也会改变.如果发现实体太大,仍然可以将它们分成几个部分,例如PlayerModel,PlayerController和PlayerRenderer,它们需要相互引用,然后在act()和render()方法中触发它们.

上一篇:java-libGdx:大于屏幕的可滚动舞台


下一篇:java-具有多个触摸输入的LIbGDX多人乒乓球