【问题标题】:Single Kotlin+libgdx codebase deployed to Android, desktop and browser?单个 Kotlin+libgdx 代码库部署到 Android、桌面和浏览器?
【发布时间】:2016-05-18 08:24:53
【问题描述】:

这可能吗?我认为部署到 Android 和桌面应该不会太难(因为 Java 已经可以做到)。我了解到 Kotlin 也可以转译为 JavaScript。这是否意味着我可以将相同的代码库部署到所有三个目标,或者我需要为浏览器使用不同的代码? (在使用 Kotlin 定位浏览器时甚至可以使用 libgdx 吗?)

【问题讨论】:

    标签: android libgdx kotlin


    【解决方案1】:

    这取决于您的代码库。首先,Kotlin2JS 没有正式发布,它有很多问题,所以为 JVM 编译的代码将无法在 JavaScript 中运行。其次,您的代码库不应依赖于 Java 类库(即java.langjava.utiljava.io 等),因为 Kotlin2JS 是源到源代码转换器,它对 Java 和 Java 库一无所知。 LibGDX 是用 Java 编写的,因此您无法在 Kotlin 上编写您的 libGDX 游戏并将其转换为 JavaScript。

    目前,要转译任何 Kotlin/Java/Scala 代码库,您可以使用 TeaVM(它与 Kotlin 团队或 JetBrains 无关)。唯一的问题是当前在 Maven (0.4.3) 中找到的稳定版本不能正确处理 swap 指令,所以你应该下载 TeaVM 的 master 分支(有适当的修复)并自己构建它。另一个问题是 TeaVM 不知道 Kotlin2JS 支持的 dynamic 关键字和 @native 注解。

    【讨论】:

    • 后一个问题是个问题吗?据我了解,TeaVM 转译的是字节码,而不是源代码(这就是为什么它甚至可以与 Kotlin 一起工作,这与转译源代码的 GWT 不同)。我可以看到 TeaVM 网站上提到了 Kotlin。
    • 它在大多数用例中都非常出色。因此,您可能必须处于最前沿才能将 TeaVM 与 Kotlin 结合使用。
    猜你喜欢
    • 2018-02-24
    • 2011-12-28
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多