This tutorial assumes the initial project setup has already been completed.
For this tutorial we will be using the JVM
target for our testing. Ensure there is a jvmMain
module already created.
The application
The first thing when creating a new LittleKt application is to create a LittleKtApp
. This app, once started, will create a context in which we can pass on in to our listeners to make use of. Each target may take slightly different parameters when creating a new LittleKtApp
but fortunately there is a method that we can make use of to make it easy.
// Under jvmMain/kotlin/my/game
fun main(args: Array<String>) {
val app = createLittleKtApp {
width = 960
height = 540
vSync = true
title = "My First LittleKt App"
}
}
Pretty easy, right? We can start the app by using the start
method which expects a lambda that returns a ContextListener
. But before that we need to actually create a ContextListener
.
ContextListener
allows use to “listen” in on the Context
and access all the goodies it offers. Creating a ContextListener
is as easy as extending the class under commonMain
.
class MyGame(context: Context) : ContextListener(context) {
override suspend fun Context.start() {
// this is where we can use the context to add render calls, dispose, calls, etc. All the logic should go here.
val texture = resourceVfs["texture.png"].readTexture() // reads a texture on the main thread from the resources
onRender { dt -> // this adds a render updater that is called on every frame
// render logic can go here
gl.clear(ClearBufferMask.COLOR_BUFFER_BIT)
}
}
}
Now we can go back and start the app by calling the start
method. The lambda passes in a Context
reference which we can use to pass into our ContextListener
.
app.start { MyGame(it) }
Now if we run the application, we should see a window pop up with the title of “My First LittleKt App”.