조작부: 하드 드롭을 반으로 줄이고 옆에 홀드 배치, 회전 버튼 확대
아랫줄을 하드 드롭 + HOLD 로 정확히 반씩 나눴다(실측 각 276px). 윗줄에서 HOLD 가 빠져 생긴 한 칸은 ↺·↻ 가 나눠 가졌다. 180° 는 폭을 유지해야 해서 4등분 중 1칸(weight 1)을 그대로 두고 회전 두 개에 1.5 씩 줬다 — 실측으로 180° 는 127 → 132px(간격 하나가 줄어든 만큼), ↺·↻ 는 126 → 198px 이 됐다. 검증: 새 위치에서 HOLD 탭 시 홀드 패널 유채색 0 → 5476, 하드 드롭 탭 시 보드 43377px·넥스트 47948px 갱신, 회전 3종 모두 탭 직후 보드 변화 확인. 엔진 테스트 28개 통과. 바뀐 조작부가 찍힌 스토어 스크린샷 2장 교체.
This commit is contained in:
@@ -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 ->
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 59 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 61 KiB |
Reference in New Issue
Block a user