1위/4
00:00.0
구간 1/5
    JB젤리빈 레이스

    로직 보기 D

    상태 머신모드는 늘 하나

    타이틀→카운트다운→플레이→결승→결과일시정지

    결과 → 다시 시작 = 카운트다운 · 처음으로 = 타이틀

    // 플레이일 때만: 시간·볼 생성·상대 이동
    const live = state == 'race' || state == 'finish';
    if (live) raceT += dt;
    상태 머신으로 만들어 줘: 타이틀·플레이·일시정지·결과

    델타 타임16.7ms

    dt 재기→입력→업데이트 (물리 ×2·애니·카메라)→그리기

    const dt = Math.min(0.05, (now - last) / 1000);
    for (let s = 0; s < 2; s++) stepWorld(dt / 2, live);
    r.pos.addScaledVector(r.vel, h); // h = dt / 2
    델타 타임으로 움직여 줘

    난이도 곡선0%

    구간마다 오르고, 체크포인트(점선) 뒤엔 살짝 쉼

    스쿼시 앤 스트레치부피는 그대로

    웅크림→늘어남→착지 찌그러짐
    sx = 1 / Math.sqrt(sy); // 부피 = sx·sx·sy = 1
    o.body.scale.set(sx, sy, sx); // 발바닥 기준

    점선 = 원래 크기 · 주황 상자 = 지금 크기

    착지할 때 스쿼시 앤 스트레치, 부피는 그대로 해 줘

    연출 레이어1·2·3 키로 켜고 끄기

    관찰자 카메라 — 카메라 = 눈 · 조명 · 그림자 보기
    최고 점수 0
    ←↑↓→이동 Space점프 Shift다이브 X3D 해부 D로직 보기조이스틱 이동 · 점프·다이브 버튼 · 위 버튼 = 3D 해부·로직 보기
    일시정지
    레이스 결과
    1위
      점수 0 · 최고 0 신기록