Tag: libgdx

Kotlin未解决的引用linkedListOf

在这篇文章之后http://obviam.net/index.php/libgdx-and-kotlin/我创建了一个项目,并使用Atom编辑。 它编译,并运行在Android设备上。 我想转换到AndroidStudio更好的工具。 我正在使用AndroidStudio 1.5.1,它说我有最新版本的kotlin插件。 我使用LibGDX安装程序创建了一个新项目,导入AdroidStudio,将主类转换为kotlin,一切正常。 然后我粘贴了我现有的代码,当我建立时,这一行: val bullets:MutableList = linkedListOf() 得到这个错误: 错误:(19,42)未解决的引用:linkedListOf 当我选择工具 – > Kotlin – >配置它说’所有与Kotlin文件模块配置’。 我也尝试将现有的项目导入AndroidStudio,结果是相同的问题。

java.lang.NoClassDefFoundError:kotlin / jvm / internal / intrinsics in libgdx

在我的libgdx gradle应用程序中,我有一个GroundHandler类: package com.mygdx.physics import com.badlogic.gdx.ApplicationAdapter import com.badlogic.gdx.Gdx import com.badlogic.gdx.math.Vector2 import com.badlogic.gdx.physics.box2d.Fixture import com.badlogic.gdx.physics.box2d.Body import com.badlogic.gdx.physics.box2d.BodyDef import com.badlogic.gdx.graphics.OrthographicCamera import com.badlogic.gdx.physics.box2d.PolygonShape import com.badlogic.gdx.physics.box2d.World class GroundHandler(val world: World, val camera: OrthographicCamera) { private var groundBodyDef: BodyDef = BodyDef() private var groundBox: PolygonShape = PolygonShape() private var groundBody: Body? = null fun createGround() { groundBodyDef.position.set(Vector2(0f, 10f)) groundBody = […]

如何保持伴随对象Kotlin中的单例类对象的引用

我想要转换的代码如下: public class AndroidLauncher extends AndroidApplication { public static AndroidLauncher androidLauncher; @Override protected void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); androidLauncher = this; } } android studio生成的代码是什么; class AndroidLauncher : AndroidApplication() { protected override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) androidLauncher = this } companion object { var androidLauncher: AndroidLauncher } } 这段代码给了我错误,这是; 财产必须被初始化或是抽象的 我正在开发一个libgdx游戏,所以我会使用这种方法从任何地方使用Game对象。 这是一个单独的类,所以它不会泄漏任何内存。

带有Kotlin错误的libGDX“org.jetbrains.kotlin.kapt.idea.KaptModelBuilderService”

我正在尝试使用Kotlin选项创建libGDX。 用libGDX创建一个项目后,用Android Studio打开它。 IDE给出下面的错误: 错误:无法初始化类org.jetbrains.kotlin.kapt.idea.KaptModelBuilderService 我的项目有什么问题? 提前致谢。

LIBGDX:setPasswordMode不起作用

所以我在LibGDX(Kotlin)中构建一个游戏,并尝试设置一个用户名和密码字段。 我创建我的TextField password = TextField(“”, Gui.skin) 我设置 password.isPasswordMode = true (Kotin changes setter and getters, under the hode this is calling setPasswordMode) 但是,当我在框中输入文字时,文字仍然出现。 我正在使用LibGDX 1.9.6

未解决的参考:junit

我正在使用Kotlin和LibGDX框架编写游戏。 我新来测试。 我已经通过一些基本的教程如何创建简单的测试。 以及如何配置gradle。 我只是点了课,选择创建测试。 但是,当我尝试建立项目,我得到一个错误: e: /Users/maximternovtsi/bagel/core/src/test/test/BagelTest.kt: (1, 12): Unresolved reference: junit e: /Users/maximternovtsi/bagel/core/src/test/test/BagelTest.kt: (2, 12): Unresolved reference: junit e: /Users/maximternovtsi/bagel/core/src/test/test/BagelTest.kt: (6, 6): Unresolved reference: Test e: /Users/maximternovtsi/bagel/core/src/test/test/BagelTest.kt: (8, 9): Unresolved reference: Assertions e: /Users/maximternovtsi/bagel/core/src/test/test/BagelTest.kt: (11, 6): Unresolved reference: Test e: /Users/maximternovtsi/bagel/core/src/test/test/BagelTest.kt: (13, 9): Unresolved reference: Assertions FAILURE: Build failed with an exception. * […]

与Android和桌面项目共享一个Kotlin模块

我有一个使用LibGDX游戏框架的游戏。 目前我所针对的平台是Desktop(PC,Mac,Linux),通过独立于平台的jar和Android。 该项目托管在https://github.com/NoxHarmonium/project-whiplash如果您需要,请随时查看。 大部分代码位于一个名为core的模块中,完全由Kotlin编写。 该模块已链接到桌面和Android项目中。 这适用于Android版本7.1+和桌面。 对于所有其他版本的Android,我在匿名函数上得到一堆java.lang.NoClassDefFoundErrorexception: val objectObservable = this.observableCache.computeIfAbsent(assetRef, fun(assetRef: AssetRef): Observable { return Async.start(fun(): T { … }).observeOn(this.eventLoopScheduler) }) exception示例: java.lang.NoClassDefFoundError: com.projectwhiplash.utils.assets.LibGdxDataManager$objectMapFromYaml$objectMapObservable$1 这似乎是由于Kotlin默认的目标(1.8)与旧版Android支持的JVM级别(1.6)不兼容。 我可能是错的,但这解释了为什么最新版本的Android工作,因为它支持更高版本的JVM。 解决方案应该像强制Kotlin发射1.6版本的JVM字节码一样简单,但我似乎无法解决。 如果你直接将Kotlin编译成Android,这似乎是通过使用kotlin-android Gradle插件来处理的。 不幸的是,我不能使用这个插件的核心模块,因为它不应该有任何Android的依赖。 我尝试使用https://kotlinlang.org/docs/reference/using-gradle.html#compiler-options中提到的构建设置来覆盖JVM版本,如下所示: compileKotlin { kotlinOptions { jvmTarget = “1.6” } } 然而,无论我把哪个Gradle文件放进去,它似乎都不起作用。事实上,当我尝试使用Intellij时,显示出“Can not resolve symbol’kotlinOptions’”错误。 Kotlin团队可能已经改变了一些东西,文档还没有更新。 我可以在Intellij模块设置中手动覆盖Kotlin设置,但每次同步gradle项目时都会覆盖Kotlin设置,这不是一个好的长期解决方案。 该项目旨在独立于IDE。 有谁知道如何设置核心模块,以最大限度地兼容老版本的Android? 我目前有最低的API级别设置为9,因为这是目前的LibGDX默认,但我愿意设置这个更高,如果太难以目标如此低的API级别。 编辑1: 我只是提取由核心模块生成的jar文件,并使用javap工具检查类文件。 我在随机类文件上运行以下命令 java -verbose […]

LibGDX Scene2d UI:表格布局中的问题

我试图用这个代码做下面的布局 (宽度和高度只是为了调试,理想情况下,我会有两个表都有50%的宽度,超类也是一个Table ) left().top() add(Label("Player name", UI_SKIN)).center().expandX() row() add(Table()).width(50f).height(50f) add(Table()).width(200f).height(50f) setDebug(true, true) 其结果是,由于某些原因,表格似乎并不在自己的行上,而是最后一个表格将标签推向左侧。 如果我只添加一个表,它工作正常(不能添加另一个截图,因为我没有足够的代表…)。 任何帮助将不胜感激,我现在​​已经没有想法了。

LibGDX:其他库不工作?

我为我的游戏使用LibGDX,我试图使用FastUtil的Int2BooleanArrayMap来存储我的密钥状态(上/下)。 不幸的是我得到这个奇怪的错误: Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.lang.NoSuchMethodError: it.unimi.dsi.fastutil.ints.Int2BooleanArrayMap.put(IZ)Ljava/lang/Boolean; at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:131) Caused by: java.lang.NoSuchMethodError: it.unimi.dsi.fastutil.ints.Int2BooleanArrayMap.put(IZ)Ljava/lang/Boolean; at com.acelta.Input.keyDown(Input.kt:12) at com.badlogic.gdx.backends.lwjgl.LwjglInput.processEvents(LwjglInput.java:312) at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:215) at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124) 该代码对于我的输入处理器非常简单: package org.jire.wot import com.badlogic.gdx.InputAdapter import it.unimi.dsi.fastutil.ints.Int2BooleanArrayMap import org.jire.wot.App.camera object Input : InputAdapter() { private val map = Int2BooleanArrayMap() override fun keyDown(keycode: Int): Boolean { map.put(keycode, true) return true } override […]

LIBGDX 3D:在着色器上关闭纹理:OpenGL

对不起,如果问题是有点利基。 几年前我写了一些代码,它将许多网格渲染为一个大网格来表现。 我现在想做的只是渲染没有纹理的网格,所以只有一个颜色 boxModel = modelBuilder.createBox(10f, 10f, 10f, Material(ColorAttribute.createDiffuse(Color.WHITE), ColorAttribute.createSpecular(Color.RED), FloatAttribute.createShininess(15f)), (VertexAttributes.Usage.Position or VertexAttributes.Usage.Normal or VertexAttributes.Usage.TextureCoordinates).toLong()) // or VertexAttributes.Usage.TextureCoordinates for (x in 1..10) { for (y in 1..10) { modelInstance = ModelInstance(boxModel, x * 15f, 0.0f, y * 15f) chunks2[0].addMesh(modelInstance.model.meshes, modelInstance.transform, btBoxShape(Vector3(10f, 10f, 10f))) } } chunks2[0].mergeBaby() 所以我建立了巨大的网格,然后渲染它 shaderProgram.begin() texture.bind() shaderProgram.setUniformMatrix("u_projTrans", camera.combined) shaderProgram.setAttributef("a_color", 1f, 1f, […]