diff --git a/app/composeApp/src/commonMain/kotlin/kr/tkrmagid/tetrig/ui/GameScreen.kt b/app/composeApp/src/commonMain/kotlin/kr/tkrmagid/tetrig/ui/GameScreen.kt index fafd73d..e8c5e5d 100644 --- a/app/composeApp/src/commonMain/kotlin/kr/tkrmagid/tetrig/ui/GameScreen.kt +++ b/app/composeApp/src/commonMain/kotlin/kr/tkrmagid/tetrig/ui/GameScreen.kt @@ -326,17 +326,21 @@ private fun ControlPad(state: GameState, lefty: Boolean, scale: Float, compactHe horizontalArrangement = Arrangement.spacedBy((8 * scale).dp), ) { val actions: @Composable (Modifier) -> Unit = { m -> - // 회전·홀드는 위쪽 한 줄로 올리고, 하드 드롭은 맞은편 소프트 드롭과 - // 같은 자리(맨 아래 가로로 긴 낮은 버튼)에 둔다. 두 컬럼의 행 높이 - // 비율(1.4 : 1)을 맞춰야 좌우가 나란히 떨어진다. + // 회전은 위쪽 한 줄, 아래는 하드 드롭 + 홀드를 반씩 나눈다. + // 두 컬럼의 행 높이 비율(1.4 : 1)을 맞춰야 좌우가 나란히 떨어진다. Column(m.fillMaxHeight(), verticalArrangement = Arrangement.spacedBy((8 * scale).dp)) { Row(Modifier.weight(1.4f).fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy((8 * scale).dp)) { - CtrlButton("↺", Modifier.weight(1f).fillMaxHeight(), scale) { state.rotate("ccw") } - CtrlButton("↻", Modifier.weight(1f).fillMaxHeight(), scale) { state.rotate("cw") } + // HOLD 가 아랫줄로 내려가며 빈 한 칸을 회전 두 개가 나눠 갖는다. + // 180° 는 폭을 유지해야 하므로 4등분 중 1칸(weight 1)을 그대로 + // 두고, ↺·↻ 가 1.5 씩 받아 3/8 폭이 된다. + CtrlButton("↺", Modifier.weight(1.5f).fillMaxHeight(), scale) { state.rotate("ccw") } + CtrlButton("↻", Modifier.weight(1.5f).fillMaxHeight(), scale) { state.rotate("cw") } CtrlButton("180°", Modifier.weight(1f).fillMaxHeight(), scale) { state.rotate("180") } + } + Row(Modifier.weight(1f).fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy((8 * scale).dp)) { + CtrlButton("하드 드롭", Modifier.weight(1f).fillMaxHeight(), scale, accent = true) { state.hardDrop() } CtrlButton("HOLD", Modifier.weight(1f).fillMaxHeight(), scale) { state.hold() } } - CtrlButton("하드 드롭", Modifier.weight(1f).fillMaxWidth(), scale, accent = true) { state.hardDrop() } } } val moves: @Composable (Modifier) -> Unit = { m -> diff --git a/store/shots/03_game.png b/store/shots/03_game.png index 80aceab..1bd5ba7 100644 Binary files a/store/shots/03_game.png and b/store/shots/03_game.png differ diff --git a/store/shots/tablet_02_game.png b/store/shots/tablet_02_game.png index 02d8abd..b1d646c 100644 Binary files a/store/shots/tablet_02_game.png and b/store/shots/tablet_02_game.png differ