libgdx和unity_libgdx和Kotlin –类[2D平台原型]
libgdx和unity
這篇文章是libgdx和Kotlin文章的后續(xù)文章。
我已經(jīng)決定開發(fā)一個(gè)簡單的2D平臺程序的原型(沿著我的早期文章中的Star Assault進(jìn)行介紹),但是我一直在使用和學(xué)習(xí)Kotlin,而不是Java。
對于本教程,該項(xiàng)目應(yīng)處于上一篇文章的初始狀態(tài)。 一個(gè)簡單的libGdx Java項(xiàng)目變成了Kotlin項(xiàng)目。 我們將在主要的Game.kt文件(以前為Nemo.kt進(jìn)行干擾。
初始狀態(tài)的項(xiàng)目源可以在這里找到。
Kotlin不需要文件名與類名相同,甚至不需要與聲明的包等效的目錄結(jié)構(gòu)中。
事不宜遲,這是代碼的第一個(gè)更改。
 主要類別已從Nemo更改為Game ,因?yàn)槲覀儗⑹褂妹QNemo作為角色。 
 因此, Nemo.kt > Game.kt 。 
突出顯示的行顯示更改。
- #05 –聲明類型為Nemo的屬性nemo并將其標(biāo)記為延遲初始化。
 - #09 –為紋理加載不同的gif(在github上查看項(xiàng)目)
 - #10 –實(shí)例化Nemo類。 這等效于java new Nemo();
 - #21 –此行創(chuàng)建一個(gè)具有一個(gè)屬性的數(shù)據(jù)類,即libGdx中類型為Vector2的位置,并且在初始化時(shí)將其默認(rèn)為Vector2(0f,0f)的情況下默認(rèn)將其設(shè)置為new。
 
數(shù)據(jù)類是一個(gè)數(shù)據(jù)容器類,其中包含生成的getters , setters如果屬性為var而不是val , equals , hashCode和toString 。 請注意該屬性的val限定符,這意味著該位置是final且不可變。 這意味著,一旦將向量分配給它,就無法對其進(jìn)行修改。 向量的值可以修改 。 除非另有要求,否則最好使所有內(nèi)容保持不變,并且Kotlin旨在將這種模式用作默認(rèn)模式。
這是以下內(nèi)容的簡寫:
public class Nemo {// val is the equivalent of final private final Vector2 position;// constructor with argumentpublic Nemo(Vector2 position) {this.position = position;}// default constructorpublic Nemo() {this.position = new Vector2(0f, 0f);}// getterpublic Vector2 getPosition() {return position;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Nemo nemo = (Nemo) o;return position != null ? position.equals(nemo.position) : nemo.position == null;}@Overridepublic int hashCode() {return position != null ? position.hashCode() : 0;}@Overridepublic String toString() {return "Nemo{" +"position=" + position +'}';} }整個(gè)類被嵌套在該類中的一行替換。 分號也不需要標(biāo)記指令的結(jié)尾。
data class Nemo(val position: Vector2 = Vector2(0f, 0f))- #17 –該指令在Nemo保持的位置繪制先前加載的紋理。 等效的Java代碼為: batch.draw(img, nemo.getPosition().getX(), nemo.getPosition().getY());
 
在Kotlin中,我們不需要指定getter或setter,我們對屬性使用點(diǎn)表示法。 所有這些都由編譯器負(fù)責(zé),并推斷出訪問器方法。
nemo.getPosition().getX()變成
nemo.position.x嘗試運(yùn)行項(xiàng)目,以便我們可以看到結(jié)果:
游戲畫面實(shí)戰(zhàn)
現(xiàn)在就這樣。 確保您查閱有關(guān)類的Kotlin文檔,以了解有關(guān)它們的更多信息。
在下一部分中,我們將把Nemo變成動畫和可移動的角色。
- 在此處獲取源代碼
 
翻譯自: https://www.javacodegeeks.com/2016/02/libgdx-kotlin-classes-2d-platformer-prototyping.html
libgdx和unity
總結(jié)
以上是生活随笔為你收集整理的libgdx和unity_libgdx和Kotlin –类[2D平台原型]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 身份证号码的含义 各代表什么意思
 - 下一篇: 壁虎是益虫吗 壁虎是不是益虫