源码如下
import createjs.*
import kotlinx.browser.document
import org.w3c.dom.HTMLCanvasElement
import kotlin.random.Random
fun createRaindrops(stage: Stage) {
val raindrops = mutableListOf<dynamic>()
for (i in 0 until 100) {
val raindrop: dynamic = Shape()
raindrop.graphics.beginFill("#fff").drawRect(0, 0, 2, 10)
raindrop.x = Random.nextDouble(0.0, stage.canvas.width.toDouble())
raindrop.y = Random.nextDouble(0.0, stage.canvas.height.toDouble())
raindrop.speed = Random.nextDouble(2.0, 10.0)
stage.addChild(raindrop)
raindrops.add(raindrop)
}
Ticker.addEventListener("tick", {
for (raindrop in raindrops) {
raindrop.y += raindrop.speed
if (raindrop.y > stage.canvas.height) {
raindrop.y = (-10).toDouble()
raindrop.x = Random.nextDouble(0.0, stage.canvas.width.toDouble())
raindrop.speed = Random.nextDouble(2.0, 10.0)
}
}
})
}
fun main() {
val el = document.createElement("canvas") as HTMLCanvasElement
el.width = 800
el.height = 600
document.body?.appendChild(el)
val stage = Stage(el)
createRaindrops(stage)
Ticker.framerate = 60
Ticker.addEventListener(TickerEvent.TICK, { stage.update() })
}