Как изменить ширину и высоту Korge NinePatch? - PullRequest
0 голосов
/ 09 июля 2020

Я разрабатываю игру с использованием игрового движка Korge.

Я пытался изменить ширину NinePatch, который прикреплен к FixedSizeContainer, но при запуске этого кода стороны изображения NinePatch искажались.

     val scoreBg=ninePatch(resourcesVfs["gamescreen/scorebg.9.png"].readNinePatch(),
                    40.0,30.0){}
                   .position(40.0,40.0) //<-- rendering correctly

     val score=text("0",font = font).centerOn(scoreBg)
        
     val scoreUpdateFun:(score:Int)->Unit = {
            val text="$it"
            val len=text.length
            scoreBg.width=30+len*10.0//<---- changes width but distorts sides
            score.text="$it"
        }

    scoreUpdateFun(100)

Какой правильный метод изменения ширины / высоты?

Обновление-1

Автор: Korge docs , Я использовал расширенную версию NinePatch, в которой используется NinePatchBitmap32 KorIM, совместимый с растровым изображением IntelliJ 9-patch.

Когда я переключился на нормальный NinePatch с NinePatchEx, он работает нормально. Но я не могу использовать растровое изображение с 9 патчами напрямую

Я изменил код на

val scoreBg=ninePatch(
    atlas["scorebg2.png"],40.0,30.0,
    53.0/119.0, 47.0/101.0, 52.0/119.0, 47.0/101.0)
    .position(40.0,40.0)

Update-2

Я обнаружил открытый проблема связана с моей проблемой

В моей игре используется версия Korge 1.13.9.0

1 Ответ

1 голос
/ 11 июля 2020

Уже исправлено. Вы можете проверить рабочий образец здесь:

Изображение с 9 патчами: https://github.com/korlibs/korge-samples/blob/master/ninepatch/src/commonMain/resources/image.9.png Пример обновления патча с помощью мыши: https://github.com/korlibs/korge-samples/blob/master/ninepatch/src/commonMain/kotlin/main.kt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...