0

我正在使用 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文档,我使用的是 NinePatch 的扩展版本,它使用了 KorIM 的 NinePatchBitmap32,它与 IntelliJ 9-patch 位图兼容。

当我NinePatchNinePatchEx它切换到正常状态时,它工作正常。但我不能直接使用 9-patch 位图

我将代码更改为

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)

更新 2

我发现了一个与我的问题相关的未解决问题

我的游戏使用的是 Korge 版本1.13.9.0

4

1 回答 1

1

它已经修复了。您可以在此处查看工作示例:

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

于 2020-07-11T13:50:57.433 回答