한눈에 보기
이 게임은 점프 버튼이 없는 대신 "언제 어디로 움직일지"만 결정하는 수직 등반 게임입니다. 파란 사각형은 발판 위에 내려앉는 순간 자동으로 위로 튀어 오르고, 플레이어가 하는 일은 다음 초록 발판 아래로 몸을 옮겨 두는 것뿐입니다. 화면이 위로만 따라 올라가기 때문에 한 번 놓친 발판으로는 되돌아갈 수 없고, 화면 맨 아래로 사라지면 그 판은 끝납니다. 아래 내용은 이 페이지 코드에 들어 있는 상수(중력 0.35, 튀어 오르는 속도 10.5, 좌우 이동 3.6)를 그대로 계산한 값이므로, 감으로만 하던 판단을 숫자로 확인하는 용도로 쓰시면 됩니다.
화면과 조작
- 플레이 화면은 가로 300px, 세로 440px 캔버스입니다. 플레이어는 22px 정사각형, 발판은 가로 54px, 세로 10px입니다.
- 키보드는 ←/→ 또는 A/D를 누르고 있는 동안 초당 약 216px(프레임당 3.6px × 60)로 이동합니다. 키를 떼면 그 자리에서 멈추지 않고 가로 이동만 멈추며, 수직 운동은 계속됩니다.
- 화면의 ◀ ▶ 버튼은 누르고 있는 동안 이동합니다. 캔버스 자체도 왼쪽 절반/오른쪽 절반을 누르고 있으면 같은 방식으로 움직여 휴대폰에서도 한 손으로 조작할 수 있습니다.
- P 키 또는 "일시정지" 버튼으로 멈추고 다시 누르면 이어집니다. 브라우저 창이 포커스를 잃으면 자동으로 일시정지되고 눌려 있던 방향 입력은 해제됩니다.
- 게임이 끝난 상태에서 방향 입력, Space, Enter 중 아무거나 누르면 새 판이 시작됩니다.
점프 물리: 한 번에 얼마나 오르고 얼마나 가나
매 단계마다 속도에 중력 0.35를 더하고, 그 속도만큼 위치를 옮깁니다. 발판에 닿으면 속도를 -10.5로 되돌리므로 매번 같은 포물선이 반복됩니다. 이 값을 단계별로 합산하면 최고점은 약 152.3px 위, 최고점에 닿는 시점은 튀어 오른 지 29단계 뒤, 같은 높이로 돌아오기까지는 60단계(초당 60단계 기준 약 1.0초)입니다. 게임 로직은 화면 주사율과 상관없이 초당 60단계로 고정해 계산하므로 144Hz 모니터에서도 속도가 빨라지지 않습니다.
체공 중 방향키를 계속 누르면 가로로 약 216px를 이동합니다. 화면 폭 300px의 약 72%이므로, 한 번의 점프로 화면 대부분을 가로지를 수 있습니다. 플레이어가 화면 끝을 완전히 벗어나면 반대편 끝에서 나타나기 때문에 왼쪽 가장자리의 발판과 오른쪽 가장자리의 발판은 사실상 이웃입니다. 한쪽 끝에서 반대쪽 끝까지 몸 전체가 지나가는 데는 약 89단계(약 1.5초)가 걸립니다.
| 발판 간격(px) | 점프 최고점(152.3px)과의 여유(px) | 판단 |
|---|---|---|
| 55 | 97.3 | 수직으로는 항상 닿음 |
| 70 | 82.3 | 수직으로는 항상 닿음 |
| 85 | 67.3 | 수직으로는 항상 닿음 |
| 100 | 52.3 | 수직으로는 항상 닿음 |
| 110 | 42.3 | 수직으로는 항상 닿음 |
발판은 위쪽으로 55~110px 간격에서 무작위로 만들어지고, 가로 위치는 가장자리에서 10px 안쪽부터 무작위입니다. 최대 간격 110px도 점프 높이보다 낮으므로 세로 방향으로 닿지 않는 발판은 생기지 않습니다. 어려움은 가로 방향의 타이밍에서 옵니다.
높이 점수는 어떻게 계산되나
점수는 플레이어가 올라간 거리가 아니라 "화면이 얼마나 스크롤됐는가"입니다. 플레이어가 화면 위쪽 42% 지점(캔버스 y=184.8px)보다 더 위로 올라가려 하면, 그만큼 플레이어를 그 선에 붙잡아 두고 모든 발판을 아래로 밀어냅니다. 밀어낸 거리의 합을 10으로 나누어 버림한 값이 화면에 보이는 m 단위 점수입니다(10px = 1m, 실제 길이 단위는 아닙니다).
발판 윗면이 화면 좌표 p에 있을 때 거기서 튀면 플레이어 윗면의 최고점은 p − 22 − 152.3이고, 이것이 기준선 184.8보다 위로 나간 만큼이 이번 점프의 상승량입니다.
- 예시 A: 발판이 y=300에 있을 때 → 최고점 y=125.75 → 상승량 59.05px, 약 5.9m
- 예시 B: 발판이 y=200에 있을 때 → 최고점 y=25.75 → 상승량 159.05px, 약 15.9m
- 예시 C: 처음 시작 발판(y=410) → 최고점 y=235.75 → 상승량 0.00px. 첫 점프만으로는 기준선에 닿지 않아 점수가 0m로 남을 수 있습니다.
즉 낮은 발판에서 튈수록 한 번에 많이 스크롤되고, 이미 높이 있는 발판에서 튀면 스크롤이 적게 일어납니다. 이 보정 때문에 점수는 "발판을 몇 개 밟았는가"보다 "누적 스크롤 거리"에 가깝습니다.
| 목표 높이 | 스크롤 거리 | 발판 수(간격 110px일 때) | 발판 수(평균 82.5px) | 발판 수(간격 55px일 때) |
|---|---|---|---|---|
| 10m | 100px | 1개 | 2개 | 2개 |
| 25m | 250px | 3개 | 4개 | 5개 |
| 50m | 500px | 5개 | 7개 | 10개 |
| 100m | 1000px | 10개 | 13개 | 19개 |
| 200m | 2000px | 19개 | 25개 | 37개 |
위 표는 목표 거리를 발판 간격으로 나눠 올림한 이론값입니다. 실제로는 발판을 건너뛰거나 같은 높이를 오가며 낭비할 수 있어 더 많이 필요할 수 있습니다.
착지 규칙에서 나오는 요령
- 내려올 때만 착지합니다. 속도가 아래 방향일 때만 충돌을 검사하므로 올라가는 중에는 발판을 아래에서 통과합니다. 머리 위 발판에 부딪혀 막힐 걱정은 하지 않아도 됩니다.
- 착지 허용 폭이 생각보다 넓습니다. 플레이어 오른쪽 끝이 발판 왼쪽 끝을 넘고, 플레이어 왼쪽 끝이 발판 오른쪽 끝 안쪽이면 성립하므로 플레이어 위치가 약 76px 범위 안이면 됩니다. 발판 폭 54px보다 22px 넉넉합니다.
- 떨어지는 구간에서 미리 방향을 잡으세요. 최고점 이후 약 31단계가 하강 구간입니다. 최고점에서 다음 발판의 위치를 결정하고 하강하는 동안 이동을 끝내는 것이 가장 안정적입니다.
- 가장자리를 적극 이용하세요. 다음 발판이 반대쪽 끝에 있다면 먼 길을 가기보다 바깥으로 나가 순환하는 쪽이 짧을 때가 많습니다.
- 키를 번갈아 누르는 대신 한 방향을 길게 유지하세요. 좌우를 계속 바꾸면 이동 거리가 상쇄되어 점프 한 번에 쓸 수 있는 216px의 가로 이동을 낭비하게 됩니다.
흔한 실수와 한계
가장 흔한 실수는 발판 바로 위에 도착하자마자 방향을 바꾸는 것입니다. 이미 착지한 순간 다음 점프가 시작되므로 그때부터는 다음 발판을 기준으로 움직여야 합니다. 두 번째 실수는 화면 하단 발판에 집착하는 것입니다. 스크롤은 위로만 진행되므로 아래쪽에 남은 발판은 곧 사라지고, 놓친 발판을 아쉬워하는 시간에 다음 발판으로 옮겨 가는 편이 낫습니다.
이 게임에는 이동하는 발판, 부서지는 발판, 아이템, 적이 없습니다. 난이도가 단계별로 올라가는 구조도 없으며, 발판 간격과 폭은 처음부터 끝까지 같은 범위에서 무작위로 만들어집니다. 따라서 높은 점수는 순수하게 조작의 안정성에서 나옵니다. 발판 위치는 매 판 무작위(Math.random)이므로 같은 판을 다시 만날 수 없으며, 승패에 영향을 주는 보안용 난수가 아닙니다.
최고 기록 저장
최고 높이는 게임이 끝날 때 이 브라우저의 localStorage에 platform-jump-best 키로 저장됩니다. 서버로 전송되지 않으며 다른 기기나 다른 브라우저와는 공유되지 않습니다. 기록을 지우려면 브라우저의 사이트 데이터(쿠키 및 저장공간) 삭제 메뉴에서 이 사이트 항목을 지우거나, 시크릿 창에서 플레이하면 기록이 남지 않습니다.
관련 게임
가로 방향으로 장애물을 넘는 방식이 궁금하다면 장애물 점프 게임을, 방향 조작만으로 오래 버티는 방식은 스네이크 게임을, 정확한 타이밍 훈련은 타이밍 블록 쌓기 게임을, 마우스 정확도는 에임 트레이너 게임을 이어서 해보세요.
자주 묻는 질문
점프 버튼은 따로 없나요?
네, 별도의 점프 버튼은 없습니다. 발판에 착지하기만 하면 자동으로 튀어 오르며, 플레이어는 좌우 이동으로 다음 발판을 맞추는 데만 집중하면 됩니다.
화면 아래로 떨어지면 바로 끝나나요?
네, 카메라가 위로만 따라 올라가는 방식이라 한 번 화면 아래로 완전히 떨어지면 다시 발판으로 돌아올 수 없어 게임이 종료됩니다. 종료 시점은 플레이어 윗면이 캔버스 아래 경계(440px)를 넘는 때입니다.
왜 어떤 점프에서는 점수가 거의 오르지 않나요?
점수는 최고점이 화면 42% 선을 넘어선 만큼만 쌓입니다. 이미 화면 위쪽에 있는 발판에서 튀면 최고점이 선 근처에 머물러 스크롤이 적습니다. 다음 발판을 밟으면 다시 쌓입니다.
모바일에서는 어떻게 조작하나요?
화면의 ◀ ▶ 버튼을 누르고 있거나, 캔버스의 왼쪽 절반·오른쪽 절반을 누르고 있으면 해당 방향으로 이동합니다. 손가락을 떼면 이동이 멈춥니다.
최고 기록을 초기화하고 싶어요.
기록은 브라우저의 localStorage에만 있습니다. 브라우저 설정의 사이트 데이터 삭제로 지우거나, 개발자 도구의 Application 탭에서 platform-jump-best 항목을 삭제하면 0으로 돌아갑니다.
발판이 닿을 수 없는 위치에 생기는 일이 있나요?
세로로는 최대 간격 110px이 점프 높이 152px보다 낮아 항상 닿습니다. 가로로는 화면 끝을 넘어 반대편으로 순환할 수 있어 한 번의 점프(약 216px 이동)로 닿지 못하는 곳이 거의 없습니다.