libGDX: 从2D屏幕打开3D场景
libGDX: Opening 3D scene from 2D screen
使用 libGDX 我已经创建了一些 2D 屏幕,例如初始屏幕和主菜单,还创建了一个 3D 场景,我希望在单击主屏幕上的按钮时能够加载该场景菜单。
我知道如何添加监听器,但不知道使用什么命令在屏幕上显示 3D 场景。如果我使用 setScreen(new World3D)
(或其他类似的扩展方法),它会给我:
World3D cannot be cast to com.badlogic.gdx.Screen
我想知道的是如何从2D画面到3D场景。我是将 3D 场景包裹在屏幕内还是我做得对但我的 World3D
class 设置不正确?
Here 是我的 World3D
class 的 pastebin,以防出现问题。
注意:classes 位于单独的子包中,但已在所需的 classes 中添加了正确的导入。
首先Screen
既不是2D也不是3D。它只是一个接口。如果发生特殊情况(pause
、resume
...),它的方法通常由 ApplicationListener
调用。
你的问题是,你 World3D
是一个 ApplicationListener
.
ApplicationListener
是每个 Libgdx 游戏的核心,如果发生某些事件,后端会通知它。
在您的情况下,它应该是 Screen
。您可以简单地将您的 Game
s Screen
设置为 World3D
Screen
,它的 render
方法将被调用。
我建议您在开始创建游戏之前先阅读 Libgdx Wiki。
使用 libGDX 我已经创建了一些 2D 屏幕,例如初始屏幕和主菜单,还创建了一个 3D 场景,我希望在单击主屏幕上的按钮时能够加载该场景菜单。
我知道如何添加监听器,但不知道使用什么命令在屏幕上显示 3D 场景。如果我使用 setScreen(new World3D)
(或其他类似的扩展方法),它会给我:
World3D cannot be cast to com.badlogic.gdx.Screen
我想知道的是如何从2D画面到3D场景。我是将 3D 场景包裹在屏幕内还是我做得对但我的 World3D
class 设置不正确?
Here 是我的 World3D
class 的 pastebin,以防出现问题。
注意:classes 位于单独的子包中,但已在所需的 classes 中添加了正确的导入。
首先Screen
既不是2D也不是3D。它只是一个接口。如果发生特殊情况(pause
、resume
...),它的方法通常由 ApplicationListener
调用。
你的问题是,你 World3D
是一个 ApplicationListener
.
ApplicationListener
是每个 Libgdx 游戏的核心,如果发生某些事件,后端会通知它。
在您的情况下,它应该是 Screen
。您可以简单地将您的 Game
s Screen
设置为 World3D
Screen
,它的 render
方法将被调用。
我建议您在开始创建游戏之前先阅读 Libgdx Wiki。