diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt index d3a1950e..04bf1b33 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomActivity.kt @@ -2397,10 +2397,23 @@ class LiveRoomActivity : BaseActivity(ActivityLiveRoomB private val particles = mutableListOf() private val baseHeartPath: Path = Path().apply { - // 원점 기준 정규화된 하트 경로 - moveTo(0f, -1f) - cubicTo(0.5f, -1.5f, 1.3f, -0.1f, 0f, 1f) - cubicTo(-1.3f, -0.1f, -0.5f, -1.5f, 0f, -1f) + // 하트 실루엣(정규화 좌표: x,y ∈ [-1,1]) + // 상단 중앙 노치가 있고 좌우 로브가 둥글며 하단 포인트가 뾰족한 형태 + // y 범위 [-1, 1] 유지(halfSize 기반 착지/충돌 판정과 정합) + reset() + moveTo(0f, -0.2f) // top notch + // right lobe → bottom tip + cubicTo( + 0.85f, -1.0f, // control1: right lobe top + 1.35f, 0.2f, // control2: right shoulder + 0f, 1f // bottom tip + ) + // left lobe → back to notch + cubicTo( + -1.35f, 0.2f, // control1: left shoulder + -0.85f, -1.0f, // control2: left lobe top + 0f, -0.2f // notch + ) close() }