Ad scenes sample

This commit is contained in:
soywiz
2019-02-03 07:18:47 +01:00
parent 4ab1d4c2f5
commit 3f8c9cd49c
4 changed files with 63 additions and 0 deletions

1
@old/old/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/.gradle

View File

@@ -0,0 +1,7 @@
import com.soywiz.korge.gradle.*
apply(plugin = "korge")
korge {
id = "com.soywiz.samples.scenes"
}

View 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"))
}
}
}
}
}

View File

@@ -17,3 +17,4 @@ pluginManagement {
enableFeaturePreview("GRADLE_METADATA")
include(":sample-box2d")
include(":sample-scenes")