Fixed quick scaling

This commit is contained in:
Alexey 2025-08-12 15:42:55 +03:00
commit 47cd68fcfe

View file

@ -21,6 +21,7 @@ import androidx.compose.ui.text.drawText
import androidx.compose.ui.text.rememberTextMeasurer
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.withStyle
import kotlin.math.absoluteValue
@Composable
fun MapCanvas(
@ -48,18 +49,23 @@ fun MapCanvas(
)
val oldLevel = tileContainer.getLevel()
val level = scale.floatValue.toInt()
val levelDiff = level - oldLevel
if (oldLevel > level) {
if (levelDiff < 0) {
repeat (levelDiff.absoluteValue) {
offsetX.floatValue -= size.width / 2F + TILE_SIZE
offsetY.floatValue -= size.height / 2F + TILE_SIZE
offsetX.floatValue /= 2F
offsetY.floatValue /= 2F
} else if (oldLevel < level) {
}
} else if (levelDiff > 0) {
repeat (levelDiff) {
offsetX.floatValue *= 2F
offsetY.floatValue *= 2F
offsetX.floatValue += size.width / 2F + TILE_SIZE
offsetY.floatValue += size.height / 2F + TILE_SIZE
}
}
val tileOffsetX = (offsetX.floatValue / TILE_SIZE).toInt()
val tileOffsetY = (offsetY.floatValue / TILE_SIZE).toInt()