日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在Kotlin中使用libGDX

發(fā)布時間:2023/12/3 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Kotlin中使用libGDX 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近,我一直在閱讀有關(guān)不同語言的信息,以及它們可以為已經(jīng)擁擠的軟件開發(fā)人員帶來什么,而一種語言對我來說很突出:Kotlin。 ( https://kotlinlang.org/ )

這是一種相對較新的語言(成立于2011年),而這些正是我選擇其他眾多成熟語言所使用的幾個原因:

  • 在JVM上運行并具有完全的Java互操作性
  • 它既不是純粹的OO也不是功能語言,它自然地適應(yīng)了兩種樣式
  • 它使用功能支持程序編程
  • 它具有類型推斷功能,并且支持可空和不可空數(shù)據(jù)類型
  • 它的語法很漂亮,尤其是Pascal樣式的變量聲明(數(shù)據(jù)類型在變量之后)
  • 非常簡潔,我發(fā)現(xiàn)用Kotlin編寫的代碼可讀性強

設(shè)置項目

我將按照Wiki( https://github.com/libgdx/libgdx/wiki/Project-Setup-Gradle )中的建議和描述使用標準libGdx設(shè)置,其中Gradle作為構(gòu)建工具,而IntelliJ作為IDE。

我將我的項目稱為Nemo ,因為它沒有名稱,這就是拉丁語中的“ nemo” (沒有,沒有人,沒有人,沒有名字)。 我們將看到它的去向。

創(chuàng)建項目后,將其導(dǎo)入到IDE中。 通常從根項目根目錄導(dǎo)入/打開build.gradle文件。

導(dǎo)入項目后,升級libGdx。 最新的安裝工具包含最新版本,但要手動執(zhí)行,請打開定義所有依賴項的build.gradle根目錄,并使用libGdx的最新版本。 最新版本可以在這里找到:https://libgdx.badlogicgames.com/versions.html

將gdxVersion更改為最新版本,當前為1.8.0。

還要確保您的IDE已準備好用于Kotlin。

要設(shè)置IntelliJ,請按照此處的說明進行操作: https : //kotlinlang.org/docs/tutorials/getting-started.html

注意:要將插件升級到Kotlin的最新版本,我設(shè)法做到的唯一方法是卸載插件并重新添加。

對于eclipse用戶,說明在這里: https : //kotlinlang.org/docs/tutorials/getting-started-eclipse.html

因為我們將Gradle用作構(gòu)建工具,所以我們需要對其進行配置以使用kotlin插件來構(gòu)建項目。 要做到這一點, kotlin-gradle插件的依賴需要被添加到buildscript主找到方法build.gralde文件。

添加行

classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.0-beta-4584'

到主build.gradle文件中的buildscript依賴build.gradle 。

根build.gradle文件應(yīng)包含以下內(nèi)容

buildscript {repositories {mavenCentral()maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }}dependencies {classpath 'com.android.tools.build:gradle:1.2.3'classpath 'org.robovm:robovm-gradle-plugin:1.12.0'classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.0.0-beta-4584'} }

可以從位于Maven Central的Kotlin的存儲庫中獲取版本號。 http://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-gradle-plugin

可以在此處找到有關(guān)如何將Kotlin與Gradle結(jié)合使用的更多信息: https : //kotlinlang.org/docs/reference/using-gradle.html

為了定位JVM,需要應(yīng)用Kotlin插件。

apply plugin: "kotlin"

到“ 核心 ”項目,因為我們將僅在“ 核心 ”中使用Kotlin。 還需要將Kotlin標準庫添加到核心依賴項中。

compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"

注意: kotlinVersion是在allProjects.ext中的項目級別定義的。

allprojects {apply plugin: "eclipse"apply plugin: "idea"version = '1.0'ext {appName = "nemo"gdxVersion = '1.8.0'roboVMVersion = '1.12.0'box2DLightsVersion = '1.4'ashleyVersion = '1.7.0'aiVersion = '1.7.0'kotlinVersion = '1.0.0-beta-4584'}repositories {mavenCentral()maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }maven { url "https://oss.sonatype.org/content/repositories/releases/" }} }

有關(guān)最新版本,請訪問Kotlin網(wǎng)站。

核心項目設(shè)置應(yīng)如下所示:

project(":core") {apply plugin: "java"apply plugin: "kotlin"dependencies {compile "com.badlogicgames.gdx:gdx:$gdxVersion"compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"} }

注意:突出顯示的行包含更改。

Kotlin可以與Java混合使用,并且由于計劃僅使用Kotlin,因此我們不會將Kotlin源提取到不同的目錄中,而是將當前的Java逐步轉(zhuǎn)換為Kotlin。 幸運的是,我們只有一個類可以轉(zhuǎn)換。 我們可以通過幾種方式做到這一點。 如果使用的是IntelliJ,最簡單的方法是從“ 工具”菜單中選擇類,然后選擇“ 將Java文件轉(zhuǎn)換為Kotlin文件” 。

還有其他方法,例如,創(chuàng)建擴展名為.kt的空文件,復(fù)制Java文件的內(nèi)容并將其粘貼到新的.kt文件中。 IntelliJ將提示您進行轉(zhuǎn)換。

當然,只有安裝并啟用了Kotlin插件,所有這一切才有可能。

讓我們檢查一下由gdx設(shè)置應(yīng)用程序生成的Nemo類文件:

package net.obviam.nemo;import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch;public class Nemo extends ApplicationAdapter {SpriteBatch batch;Texture img;@Overridepublic void create () {batch = new SpriteBatch();img = new Texture("badlogic.jpg");}@Overridepublic void render () {Gdx.gl.glClearColor(1, 0, 0, 1);Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);batch.begin();batch.draw(img, 0, 0);batch.end();} }

以及生成的Kotlin文件:

package net.obviam.nemoimport com.badlogic.gdx.ApplicationAdapter import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.GL20 import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatchclass Nemo : ApplicationAdapter() {internal var batch: SpriteBatchinternal var img: Textureoverride fun create() {batch = SpriteBatch()img = Texture("badlogic.jpg")}override fun render() {Gdx.gl.glClearColor(1f, 0f, 0f, 1f)Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT)batch.begin()batch.draw(img, 0f, 0f)batch.end()} }

自動轉(zhuǎn)換不是完美的,如果我們編譯該類,則會得到兩個錯誤:

Error:(9, 4) Gradle: Property must be initialized or be abstract
Error:(10, 4) Gradle: Property must be initialized or be abstract

錯誤指的是突出顯示的行(10和11)中的2個未初始化的類屬性。

internal var batch: SpriteBatch internal var img: Texture

在Kotlin中,必須在構(gòu)造函數(shù)或類的init方法中初始化聲明的non null屬性。 但是這樣做,我們將不會使用libGdx生命周期方法,因此我們可以應(yīng)用Kotlin的一項功能: Late Initialized Properties 。 這是通過使用lateinit修飾符實現(xiàn)的。

internal lateinit var batch: SpriteBatch internal lateinit var img: Texture

這將標記屬性以進行后期初始化,并且在初始化之前對屬性的任何訪問都將通過特殊異常來發(fā)出信號。

就是這樣,我們有了Kotlin libGdx項目。 我們可以構(gòu)建它并以通常的方式運行它。

最簡單的方法是使用Gradle包裝器從命令行運行它。 在項目的根目錄中,執(zhí)行以下命令(Linux,OSX):./gradlew desktop:run或在Windows gradlew.bat desktop:run上

或按照Wiki中的說明進行操作: https : //github.com/libgdx/libgdx/wiki/Project-Setup-Gradle

應(yīng)該會出現(xiàn)非常熟悉的引導(dǎo)程序屏幕。

接下來,我們將探討游戲開發(fā)中的一些常見任務(wù),以及如何使用Kotlin實現(xiàn)這些任務(wù)。

  • 不斷發(fā)展的項目可以在這里找到: https : //github.com/obviam/kotlin-gdx-nemo

翻譯自: https://www.javacodegeeks.com/2016/01/using-libgdx-kotlin.html

總結(jié)

以上是生活随笔為你收集整理的在Kotlin中使用libGDX的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。