0

Kotlin と TornadoFX/JavaFX を使用して 1/60 秒ごとに再描画するビデオ ゲームに取り組んでいます。現在、私のプログラムは背景を白に設定してその上に描画することで再描画しています。しかし、私はもう少しきれいなものを好むでしょう。これは私が現在それを描いている方法です:

private fun drawShapes(gc: GraphicsContext) {
    gc.fill = c(255, 255, 255)
    gc.fillRect(0.0, 0.0, 700.0, 700.0) //Game is 700x700
    gc.fill = c(94, 132, 233)
    walls.forEach { gc.fillRect(it.x.toDouble(), it.y.toDouble(), it.w.toDouble(), it.h.toDouble()) }
    gc.fill = c(255, 239, 20)
    coins.filter { !it.collected }.forEach { gc.fillRect(it.x.toDouble(), it.y.toDouble(), it.w.toDouble(), it.h.toDouble()) }
    //Cut off here because following is more of same
}
fixedRateTimer(period = 16, initialDelay = 500) { drawShapes(graphicsContext2D) }

たくさん重ねるのではなく、きれいに拭く方法はありませんか?インターネットで検索してみましたが、何も見つかりませんでした。

4

2 に答える 2

0

これを行う方法は実際にはありません。ただし、キャンバスを空白にして再度描画しても問題は発生しませんでした。この問題は、プログラムの別の部分で発生していました。

于 2018-01-05T19:45:32.883 に答える