Jungle Arc Shot
중력과 바람을 읽어 한 화살로 여러 과일을 관통하는 제작기. 예측 궤적과 화살 경제를 연결하고, 화면 잘림과 일시정지 버튼의 반복 확대를 고친 경험입니다.
AI Tools Lab · 소개 글 작성 · 수정

한 표적에 한 발씩 쓰면 부족한 사격
Jungle Arc Shot은 화살이 중력과 바람을 받는 정글 사격 게임입니다. 저는 각도를 맞히는 것만으로 끝나지 않도록 한 화살이 여러 과일과 풍선을 관통하게 만들었습니다. 드래그로 각도와 힘을 정하고, 손을 놓으면 반대 방향으로 발사합니다. 발사 전에 점선으로 예상 궤적을 보여 줍니다.
화살 수는 표적을 하나씩 처리하기에 넉넉하지 않게 배분했습니다. 표적 수의 절반을 올림한 값에 한 발을 더하는 구조라 후반에는 여러 대상을 한 궤적으로 엮어야 합니다. 표적을 모두 맞히는 정확성과 남은 화살을 관리하는 판단이 같은 문제로 이어집니다.
관통할 때는 뒤에 맞힌 표적에 더 큰 배수를 줍니다. 과일과 풍선의 기본 보상은 다르지만 한 발로 연결한 순서가 점수에 반영됩니다. 저는 관통을 눈에 보이는 효과로만 두지 않고 화살 배분, 점수와 다음 라운드의 여유까지 연결했습니다.
미리보기와 실제 화살은 같은 바람을 읽는다
발사 전에 궤적을 보여 주는 게임에서는 안내와 실제 운동이 맞아야 합니다. 점선이 휘어지는 방향과 발사 뒤의 화살이 다르면 플레이어는 예측을 배울 수 없습니다. 중력과 라운드의 바람을 궤적에 함께 반영하고, 바람의 방향과 세기를 HUD에서 읽도록 했습니다.
라운드마다 바람 방향이 교대하고 강해집니다. 이전 라운드에서 쓴 각도를 그대로 가져오면 다른 지점으로 날아갈 수 있습니다. 풍선이 움직이는 구간에서는 현재 위치뿐 아니라 화살이 도착할 위치를 고려해야 합니다. 같은 드래그를 쓰되 매 라운드 조건을 다시 읽는 구조입니다.
마지막 화살을 발사한 순간에는 바로 실패시키지 않습니다. 화살이 아직 비행 중이라면 남은 대상을 관통할 수 있습니다. 날아가는 화살이 정리된 뒤 표적이 남았는지 확인해 소진 실패를 확정합니다. 제한 자원의 숫자와 마지막 행동의 결과를 다른 시점에 다룬 선택입니다.
준비한 과일 대신 임시 그림이 읽히고 있었다
2026년 7월 그림을 다듬는 과정에서는 과일과 풍선용으로 만든 PNG가 있는데도 런타임 키가 작은 임시 SVG를 읽는 문제가 확인됐습니다. 파일을 교체한 것과 실제 화면이 그 파일을 쓰는 것은 별도의 확인이었습니다.
저는 과일과 풍선의 로딩 경로를 실제 그림으로 연결하고, 플레이어 시트의 프레임 크기도 맞췄습니다. 그다음 화살, 표적, 배경, 버튼과 효과의 키를 한곳에서 관리하고 로딩 화면이 먼저 읽게 옮겼습니다. 게임 화면에 들어간 뒤 과일과 화살을 뒤늦게 읽는 경로를 없앴습니다.
이 과정에서 캔버스의 표시 해상도도 확인했습니다. 화면의 DPR이 2여도 실제 그리기 크기가 논리 화면과 같으면 큰 그림의 외곽을 충분히 표시하지 못합니다. 화면 크기와 물리 캔버스를 구분하고, 그림의 원본 크기와 표시 크기까지 연결해 봤습니다.
일시정지를 반복했더니 버튼 크기가 누적됐다
버튼 후보정에서는 눌림 피드백이 현재 배율에 다시 곱해지는 구조를 고쳤습니다. 누르고 복구하는 흐름이 반복되면 크기가 조금씩 달라질 수 있습니다. 저는 일시정지 버튼의 눌림 상태를 고정된 표시 크기로 바꾸고, 일시정지 장면으로 넘어가기 전에 원래 크기로 되돌리도록 했습니다.
화면을 전환하는 글자 버튼에는 한 번만 실행하는 입력 가드를 넣었습니다. 시작 버튼을 빠르게 여러 번 누른 동작이 전투 화면의 화살 발사로 이어지면 아직 궤적을 보기도 전에 제한 자원을 쓰게 됩니다. 장면 전환 입력과 사격 입력을 서로 다른 시점으로 나눠야 했습니다.
이 게임은 남은 화살이 적은 만큼 버튼에서 새는 입력 하나도 규칙을 바꿉니다. 저는 반복 누름을 장식 피드백의 문제로만 보지 않고, 새 라운드의 발사 수와 연결해 확인했습니다. 버튼의 크기가 복구됐는지와 전투에 입력이 넘어가지 않았는지를 함께 보는 이유입니다.
화면을 채우는 것보다 전체 궤적을 남겼다
전체 화면 표시를 다듬을 때는 캔버스를 화면에 꽉 채우는 방식이 모바일에서 좌우를 잘랐습니다. 390px 화면에 474px 폭의 캔버스가 놓이는 상태가 생겼습니다. 저는 전체 1080×1920 캔버스가 화면 안에 들어오도록 맞춤 방식을 바꿨습니다.
포물선 게임에서는 화면 밖으로 잘린 공간이 조준 가능한 영역을 가립니다. 위아래에 여백이 생기더라도 표적과 예상 경로, 버튼이 함께 보여야 입력을 판단할 수 있습니다. 화면을 채우는 선택보다 게임의 전장 전체를 유지하는 선택이 이 규칙에 맞았습니다.
점선 궤적이 실제 화살의 움직임을 예측하는지, 준비한 그림을 로더가 읽는지, 화면 전환 때의 탭이 화살을 소비하지 않는지를 확인했습니다. 서로 다른 문제였지만 모두 조준 전에 플레이어가 읽는 정보와 발사 뒤 결과에 영향을 줬습니다. 다음 탄도 게임에서도 바람 조건을 바꿔 보고 마지막 화살이 끝나는 순간까지 확인하려고 합니다.
개발 자료
게임 프로젝트
관통을 전제로 한 화살 배분과 탄도 예측, 모바일 버튼과 화면 잘림을 다듬은 경험입니다.
GitHub 게임 저장소 · coreline-ai ↗ · 문의·정정 요청