私はKotlinとTornadoFX/JavaFXを使って1/60秒ごとに再描画するビデオゲームに取り組んでいます。現在、私のプログラムは、背景を白に設定して描画することで再描画します。しかし、私は少しきれいなものを好むだろう。私は現在、それをどのように描いています。これはされていますJavaFXリセットグラフィックスコンテキスト
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) }
は、単にきれいに拭くの代わりに、互いの上に多くを重ねるする方法はありますか?私はそれをインターネットで検索しようとしましたが、何も見つかりませんでした。
[遅延]問題の原因を確認するには[プロフィール](http://stackoverflow.com/q/2064427/230513)をご覧ください。 – trashgod
@trashgodあなたがリンクしているプログラムをどのように使うべきかは分かりません。また、それは主に私にとってはちょうど良いことです。私は誤解を招く部分を取り除きます。 – fin444
2つのアプローチが対比されています(https://stackoverflow.com/a/44141878/230513)。 – trashgod