【Kotlin】坦克大战11:打包游戏_java
把原来的build.gradle重命名为a.tmp新建build.gradle.kts文件
双击Shift,输入kotlin,选择列表中的Configure Kotlin in Project,等…
【Kotlin】坦克大战11:打包游戏_kotlin_02
【Kotlin】坦克大战11:打包游戏_kotlin_03
还需要修改一些东西,参照之前的build.gradle引入游戏引擎,还需要指定启动页面,修改后的build.gradle.kts如下

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
kotlin("jvm") version "1.3.61"
application
}

application{
mainClassName = "com.errol.gradle.AppKt"
}

dependencies {
implementation(kotlin("stdlib-jdk8"))
implementation("com.github.shaunxiao:kotlinGameEngine:v0.0.4")
}
repositories {
mavenCentral()
maven { setUrl("https://jitpack.io") }
}
val compileKotlin: KotlinCompile by tasks
compileKotlin.kotlinOptions {
jvmTarget = "1.8"
}
val compileTestKotlin: KotlinCompile by tasks
compileTestKotlin.kotlinOptions {
jvmTarget = "1.8"
}

右侧的grale面板中,双击run可运行游戏
【Kotlin】坦克大战11:打包游戏_java_04
双击assembleDist可打包游戏,选择distTar和distZip分别打包tar和zip,选择assembleDist可打包两种格式
【Kotlin】坦克大战11:打包游戏_maven_05
结束后,build文件夹下的distributions中会生成game-tank.tar和game-tank.zip两个文件,选择一个复制出来
【Kotlin】坦克大战11:打包游戏_kotlin_06
【Kotlin】坦克大战11:打包游戏_重新运行_07
运行game-tank.bat会报错。查看报错,打开cmd,把game-tank.bat拖进去,说找不到1.map
【Kotlin】坦克大战11:打包游戏_java_08
修改读取1.map的方式,修改GameWindow中onCreate方法

//通过读文件的方式创建地图
//val file = File(javaClass.getResource("/map/1.map").path)
val resourceAsStream = javaClass.getResourceAsStream("/map/1.map");
val reader = BufferedReader(InputStreamReader(resourceAsStream,"utf-8"))
//读取文件行
val lines: List<String> = reader.readLines()
......

重新运行程序,没有问题

先clean一下,这样build文件夹就没与了,重新打包
【Kotlin】坦克大战11:打包游戏_重新运行_09
这次我们distZip,重新运行bin下的game-tank.bat,能正常运行

源码下载