From 3d66be5307f432ee2b0de5938ca5792d3a2e5dee Mon Sep 17 00:00:00 2001 From: soywiz Date: Sat, 11 Jul 2020 13:23:13 +0200 Subject: [PATCH] Add 9-patch sample --- ninepatch/.gitignore | 1 + ninepatch/build.gradle.kts | 7 ++++++ ninepatch/src/commonMain/kotlin/main.kt | 21 ++++++++++++++++++ .../src/commonMain/resources/image.9.png | Bin 0 -> 6918 bytes 4 files changed, 29 insertions(+) create mode 100644 ninepatch/.gitignore create mode 100644 ninepatch/build.gradle.kts create mode 100644 ninepatch/src/commonMain/kotlin/main.kt create mode 100644 ninepatch/src/commonMain/resources/image.9.png diff --git a/ninepatch/.gitignore b/ninepatch/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/ninepatch/.gitignore @@ -0,0 +1 @@ +/build diff --git a/ninepatch/build.gradle.kts b/ninepatch/build.gradle.kts new file mode 100644 index 0000000..5c835e5 --- /dev/null +++ b/ninepatch/build.gradle.kts @@ -0,0 +1,7 @@ +import com.soywiz.korge.gradle.* + +apply() + +korge { + id = "com.soywiz.samples.ninepatch" +} diff --git a/ninepatch/src/commonMain/kotlin/main.kt b/ninepatch/src/commonMain/kotlin/main.kt new file mode 100644 index 0000000..863f606 --- /dev/null +++ b/ninepatch/src/commonMain/kotlin/main.kt @@ -0,0 +1,21 @@ +import com.soywiz.kmem.* +import com.soywiz.korge.* +import com.soywiz.korge.input.* +import com.soywiz.korge.view.* +import com.soywiz.korim.bitmap.* +import com.soywiz.korim.color.* +import com.soywiz.korio.file.std.* + +suspend fun main() = Korge(width = 512, height = 512, bgcolor = Colors["#2b2b2b"]) { + val ninePath = resourcesVfs["image.9.png"].readNinePatch() + + val np = ninePatch(ninePath, 320.0, 32.0) { + position(100, 100) + } + np.mouse { + moveAnywhere { + np.width = it.currentPosLocal.x.clamp(16.0, 1000.0) + np.height = it.currentPosLocal.y.clamp(16.0, 1000.0) + } + } +} diff --git a/ninepatch/src/commonMain/resources/image.9.png b/ninepatch/src/commonMain/resources/image.9.png new file mode 100644 index 0000000000000000000000000000000000000000..063c03eb1a1a1c30893c26cb1f7b73aff9eab443 GIT binary patch literal 6918 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 M07*qoM6N<$g5$*HOaK4? literal 0 HcmV?d00001