mirror of
https://github.com/jlengrand/compose-multiplatform.git
synced 2026-03-10 08:11:20 +00:00
Tweaks, fix pause
This commit is contained in:
@@ -42,17 +42,17 @@ abstract class Game {
|
||||
|
||||
var numBlocks by mutableStateOf(5)
|
||||
|
||||
fun isInBoundaries(pieceData: PieceData): Boolean = pieceData.position < size.height
|
||||
fun isInBoundaries(pieceData: PieceData) = pieceData.position < size.height
|
||||
|
||||
abstract fun saveTime()
|
||||
abstract fun now(): Long
|
||||
|
||||
fun togglePause() {
|
||||
paused = !paused
|
||||
saveTime()
|
||||
previousTime = Long.MAX_VALUE
|
||||
}
|
||||
|
||||
fun start() {
|
||||
saveTime()
|
||||
previousTime = now()
|
||||
startTime = previousTime
|
||||
clicked = 0
|
||||
started = true
|
||||
|
||||
@@ -16,7 +16,7 @@ import jetbrains.compose.common.shapes.CircleShape
|
||||
import org.jetbrains.compose.common.demo.position
|
||||
|
||||
@Composable
|
||||
fun piece(index: Int, piece: PieceData) {
|
||||
fun Piece(index: Int, piece: PieceData) {
|
||||
val boxSize = 40.dp
|
||||
Box(
|
||||
Modifier
|
||||
@@ -86,7 +86,7 @@ fun fallingBalls(game: Game) {
|
||||
}
|
||||
) {
|
||||
game.pieces.forEachIndexed { index, piece ->
|
||||
piece(index, piece)
|
||||
Piece(index, piece)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,25 +11,20 @@ import androidx.compose.web.css.Style
|
||||
import org.jetbrains.compose.web.ui.Styles
|
||||
|
||||
class JsGame : Game() {
|
||||
override fun saveTime() {
|
||||
previousTime = window.performance.now().toLong()
|
||||
}
|
||||
override fun now() = window.performance.now().toLong()
|
||||
}
|
||||
|
||||
fun main() {
|
||||
val root = document.getElementById("root") as HTMLElement
|
||||
|
||||
renderComposable(
|
||||
root = root
|
||||
) {
|
||||
renderComposable(root = root) {
|
||||
Style(Styles)
|
||||
fallingBalls(
|
||||
remember {
|
||||
JsGame()?.apply {
|
||||
width = root.offsetWidth
|
||||
height = root.offsetHeight
|
||||
}
|
||||
val game = remember {
|
||||
JsGame().apply {
|
||||
width = root.offsetWidth
|
||||
height = root.offsetHeight
|
||||
}
|
||||
)
|
||||
}
|
||||
fallingBalls(game)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,16 +7,14 @@ import org.jetbrains.compose.demo.falling.Game
|
||||
import androidx.compose.runtime.remember
|
||||
|
||||
class JvmGame : Game() {
|
||||
override fun saveTime() {
|
||||
previousTime = System.nanoTime()
|
||||
}
|
||||
override fun now() = System.nanoTime()
|
||||
}
|
||||
|
||||
fun main() {
|
||||
Window(title = "Demo", size = IntSize(600, 400)) {
|
||||
fallingBalls(
|
||||
remember {
|
||||
JvmGame()?.apply {
|
||||
JvmGame().apply {
|
||||
width = 600
|
||||
height = 400
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user