mirror of
https://github.com/jlengrand/korge-samples.git
synced 2026-03-10 08:31:18 +00:00
Ad scenes sample
This commit is contained in:
1
@old/old/.gitignore
vendored
Normal file
1
@old/old/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/.gradle
|
||||
7
sample-scenes/build.gradle.kts
Normal file
7
sample-scenes/build.gradle.kts
Normal file
@@ -0,0 +1,7 @@
|
||||
import com.soywiz.korge.gradle.*
|
||||
|
||||
apply(plugin = "korge")
|
||||
|
||||
korge {
|
||||
id = "com.soywiz.samples.scenes"
|
||||
}
|
||||
54
sample-scenes/src/commonMain/kotlin/main.kt
Normal file
54
sample-scenes/src/commonMain/kotlin/main.kt
Normal file
@@ -0,0 +1,54 @@
|
||||
import com.soywiz.korge.Korge
|
||||
import com.soywiz.korge.input.onClick
|
||||
import com.soywiz.korge.scene.Module
|
||||
import com.soywiz.korge.scene.Scene
|
||||
import com.soywiz.korge.view.Container
|
||||
import com.soywiz.korge.view.position
|
||||
import com.soywiz.korge.view.solidRect
|
||||
import com.soywiz.korge.view.text
|
||||
import com.soywiz.korim.color.Colors
|
||||
import com.soywiz.korinject.AsyncInjector
|
||||
import com.soywiz.korio.async.launchImmediately
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
suspend fun main() = Korge(Korge.Config(module = MyModule))
|
||||
|
||||
object MyModule : Module() {
|
||||
override val mainScene: KClass<out Scene> = MyScene1::class
|
||||
|
||||
override suspend fun init(injector: AsyncInjector): Unit = injector.run {
|
||||
mapInstance(MyDependency("HELLO WORLD"))
|
||||
mapPrototype { MyScene1(get()) }
|
||||
mapPrototype { MyScene2(get()) }
|
||||
}
|
||||
}
|
||||
|
||||
class MyDependency(val value: String)
|
||||
|
||||
class MyScene1(val myDependency: MyDependency) : Scene() {
|
||||
override suspend fun Container.sceneInit() {
|
||||
text("MyScene1: ${myDependency.value}")
|
||||
solidRect(100, 100, Colors.RED) {
|
||||
position(200, 200)
|
||||
onClick {
|
||||
launchImmediately {
|
||||
sceneContainer.changeTo<MyScene2>()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MyScene2(val myDependency: MyDependency) : Scene() {
|
||||
override suspend fun Container.sceneInit() {
|
||||
text("MyScene2: ${myDependency.value}")
|
||||
solidRect(100, 100, Colors.BLUE) {
|
||||
position(200, 200)
|
||||
onClick {
|
||||
launchImmediately {
|
||||
sceneContainer.changeTo<MyScene1>(MyDependency("From MyScene2"))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,3 +17,4 @@ pluginManagement {
|
||||
enableFeaturePreview("GRADLE_METADATA")
|
||||
|
||||
include(":sample-box2d")
|
||||
include(":sample-scenes")
|
||||
|
||||
Reference in New Issue
Block a user