当我编译当前代码时,抛出了上述异常。而且我不知道如何解决它,这意味着什么。
我的代码:

textButton {
            position(0, 128)
            text = "Play"
            onClick {
                println("Play")
                launchImmediately {
                    sceneContainer.changeTo<ChooseCampaign>()
                }
            }
        }

如何解决?

最佳答案

在KorGE中使用场景时,您将间接使用korinject依赖项注入(inject)器。

而且该注入(inject)器需要手动映射。如果使用模块,则可以在Module.init方法中配置这些映射。

检查此样本:https://github.com/korlibs/korge-samples/blob/1771b7ca7f4440e1a368ff4b441e97bf62e08b8d/sample-scenes/src/commonMain/kotlin/main.kt#L15-L23

对于您的情况,一旦获得Injector实例,就可以映射这样的场景:

mapPrototype { ChooseCampaign(get()) }

您必须将get()ChooseCampaign构造函数具有的参数一样多。

如果您不使用模块,则放置映射的位置会有所不同,并且需要获取Injector实例。

suspend fun main() = Korge {块中,您注入(inject)了Stage单例。这是对Views单例的引用的根 View 。

因此,您可以像这样访问注入(inject)器:this.views.injector
然后,您可以随时根据需要映射场景,尽管我建议您在应用程序开始时进行操作。

08-04 07:52