package androidx.compose
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.core.infiniteRepeatable
import androidx.compose.animation.core.rememberInfiniteTransition
import androidx.compose.animation.core.tween
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
[USER=1152321]@Composable[/USER]
fun BouncingBlocks() {
Box(
modifier = Modifier.size(300.dp, 500.dp),
contentAlignment = Alignment.Center
) {
for (i in 0..29) {
BouncingBlock(
modifier = Modifier
.padding(8.dp)
.size(40.dp)
)
}
}
}
[USER=1152321]@Composable[/USER]
fun BouncingBlock(modifier: Modifier = Modifier) {
val infiniteTransition = rememberInfiniteTransition()
val offset by animateFloatAsState(
targetValue = 0f,
animationSpec = infiniteRepeatable(
animation = tween(durationMillis = 1000, delayMillis = (i * 50))
)
)
Box(
modifier = modifier
.background(Color.Blue)
.offset(y = offset.dp)
)
}