From 01da51665ebcd0ce20a23a6a230c3007e936bce186764c9a188b1d4586549c98 Mon Sep 17 00:00:00 2001 From: snap Date: Fri, 20 Feb 2026 13:07:17 +0000 Subject: [PATCH] Experiment with creating buttons for a main menu --- .../WitchQueen/android/AndroidLauncher.kt | 2 +- WitchQueen/core/build.gradle | 1 - .../com/iofferyoutea/WitchQueen/Main.kt | 6 ++- .../com/iofferyoutea/WitchQueen/MainMenu.kt | 50 +++++++++++++++++++ 4 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 WitchQueen/core/src/main/kotlin/com/iofferyoutea/WitchQueen/MainMenu.kt diff --git a/WitchQueen/android/src/main/kotlin/com/iofferyoutea/WitchQueen/android/AndroidLauncher.kt b/WitchQueen/android/src/main/kotlin/com/iofferyoutea/WitchQueen/android/AndroidLauncher.kt index e3a99fe..d294ecb 100644 --- a/WitchQueen/android/src/main/kotlin/com/iofferyoutea/WitchQueen/android/AndroidLauncher.kt +++ b/WitchQueen/android/src/main/kotlin/com/iofferyoutea/WitchQueen/android/AndroidLauncher.kt @@ -12,7 +12,7 @@ class AndroidLauncher : AndroidApplication() { super.onCreate(savedInstanceState) initialize(Main(), AndroidApplicationConfiguration().apply { // Configure your application here. - useImmersiveMode = true // Recommended, but not required. + //useImmersiveMode = true // Recommended, but not required. }) } } diff --git a/WitchQueen/core/build.gradle b/WitchQueen/core/build.gradle index 57cb746..1fee702 100644 --- a/WitchQueen/core/build.gradle +++ b/WitchQueen/core/build.gradle @@ -7,7 +7,6 @@ dependencies { api "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" api "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" api "com.badlogicgames.gdx:gdx:$gdxVersion" - api "com.github.kotcrab.vis-ui:vis-ui:$visUiVersion" api "io.github.libktx:ktx-actors:$ktxVersion" api "io.github.libktx:ktx-ai:$ktxVersion" api "io.github.libktx:ktx-app:$ktxVersion" diff --git a/WitchQueen/core/src/main/kotlin/com/iofferyoutea/WitchQueen/Main.kt b/WitchQueen/core/src/main/kotlin/com/iofferyoutea/WitchQueen/Main.kt index 9d2de84..0e23980 100644 --- a/WitchQueen/core/src/main/kotlin/com/iofferyoutea/WitchQueen/Main.kt +++ b/WitchQueen/core/src/main/kotlin/com/iofferyoutea/WitchQueen/Main.kt @@ -15,8 +15,10 @@ class Main : KtxGame() { override fun create() { KtxAsync.initiate() - addScreen(FirstScreen()) - setScreen() +// addScreen(FirstScreen()) +// setScreen() + addScreen(MainMenu()) + setScreen() } } diff --git a/WitchQueen/core/src/main/kotlin/com/iofferyoutea/WitchQueen/MainMenu.kt b/WitchQueen/core/src/main/kotlin/com/iofferyoutea/WitchQueen/MainMenu.kt new file mode 100644 index 0000000..f232ce4 --- /dev/null +++ b/WitchQueen/core/src/main/kotlin/com/iofferyoutea/WitchQueen/MainMenu.kt @@ -0,0 +1,50 @@ +package com.iofferyoutea.WitchQueen + +import com.badlogic.gdx.Gdx +import com.badlogic.gdx.graphics.Texture +import com.badlogic.gdx.graphics.g2d.BitmapFont +import com.badlogic.gdx.graphics.g2d.TextureRegion +import com.badlogic.gdx.scenes.scene2d.Stage +import com.badlogic.gdx.scenes.scene2d.ui.Table +import com.badlogic.gdx.scenes.scene2d.ui.TextButton +import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable +import ktx.app.KtxScreen +import ktx.app.clearScreen +import ktx.assets.toInternalFile +import com.badlogic.gdx.graphics.Texture.TextureFilter.Nearest +import com.badlogic.gdx.scenes.scene2d.ui.Skin + +class MainMenu : KtxScreen { + val table = Table().apply { + setFillParent(true) + debug = true + } + val stage = Stage().apply { + Gdx.input.inputProcessor = this + addActor(table) + } + + val mySkin = Skin("uiskin.json".toInternalFile()) + + val textureRegion = TextureRegion(Texture("default.png").apply { setFilter(Nearest, + Nearest + )} ) + val buttonFont = BitmapFont("default.fnt".toInternalFile()) + val style = TextButton.TextButtonStyle().apply { up = TextureRegionDrawable(textureRegion); font = buttonFont } + + val button = TextButton("Button", style).apply { + table.add(this).size(512f, 512f) + } + + override fun render(delta: Float) { + super.render(delta) + clearScreen(0f, 255f, 0f) + + stage.act(delta) + stage.draw() + } + + override fun dispose() { + stage.dispose() + } +}