자동 러너 · SOURCE GUIDE
동네북 · 골목 대모험
작은 캐릭터가 골목을 달리며 장애물을 넘고 코인을 모으는 러너입니다. 자동 이동과 두 번의 점프만으로 플레이를 구성하는 방법을 읽어봅니다.
AI Tools Lab · · 소스 v1.0.0

조작은 하나, 결정은 두 번
동네북은 앞으로 자동으로 달립니다. 사용자는 언제 점프하고, 공중에서 두 번째 점프를 쓸지만 결정합니다. 첫 점프를 일찍 쓰면 낮은 장애물을 편하게 넘을 수 있지만, 두 번째 점프까지 연달아 사용하면 다음 장애물에 대응할 여유가 줄어듭니다.
코인은 달리는 길에 놓여 있고 획득하면 점수에 반영됩니다. 멀리 가는 목표와 코인을 모으는 목표가 겹치면서, 단순한 점프에도 경로 선택의 의미가 생깁니다.
네 파일로 살펴보는 구성
dist/game.js가 이동·점프·충돌·그리기·입력을 관리하고, dist/dongnebook.png가 캐릭터 이미지입니다. index.html은 시작과 점프 버튼, style.css는 화면 크기에 따른 배치를 맡습니다.
이미지 파일 이름만 바꾸면 캐릭터가 표시되지 않을 수 있습니다. 새 이미지를 적용하려면 이미지 로딩 경로뿐 아니라 캐릭터를 그리는 영역과 실제 충돌 판정을 함께 확인해야 합니다. 눈에 보이는 크기와 판정 범위가 다르면 점프 타이밍을 이해하기 어려워집니다.
자동 이동과 점프가 만나는 지점
코드의 start()는 점수, 코인, 장애물 배열과 속도를 새 게임 값으로 되돌립니다. 기본 속도는 280이며 player의 vy는 세로 속도, jumps는 점프 사용 횟수입니다. 착지와 공중 상태를 구분해야 두 번째 점프까지만 허용할 수 있습니다.
장애물과 코인은 한 번에 전부 그려 둔 배경이 아닙니다. 진행 시간에 따라 생성되고 화면을 지나갑니다. 따라서 속도를 올릴 때는 캐릭터 동작뿐 아니라 다음 장애물을 판단할 수 있는 시간도 함께 달라집니다.
직접 바꿔볼 과제: 여유 있는 골목 만들기
start()안의 속도 초기값을 조금 낮추고 기존 버전과 비교합니다.- 점프 횟수는 그대로 둔 채 장애물 생성 간격을 살펴봅니다.
- 코인을 따라가려는 동선과 장애물을 피하는 동선이 충돌하는 구간을 기록합니다.
처음부터 점프 높이·중력·속도를 모두 바꾸지 마세요. 같은 장애물을 넘는 장면으로 한 가지 변경의 영향을 비교하는 편이 원인을 찾기 쉽습니다.
화면 크기가 바뀔 때 볼 것
PC와 좁은 화면에서 캐릭터가 보이는 구간, 코인의 위치, 점프 버튼의 접근성을 확인합니다. 이미지 로딩 전에는 시작 버튼이 준비 상태이므로 캐릭터 PNG를 이동하거나 빠뜨리지 않아야 합니다. 게임 종료 후 다시 시작했을 때 이전 장애물과 점수가 남지 않는지도 함께 확인하세요.
내 컴퓨터에서 실행하기
- 소스 ZIP을 내려받고 압축을 풉니다.
README.md와dist가 있는 폴더에서 터미널을 엽니다.- 아래 명령을 실행한 뒤
http://127.0.0.1:8080/에 접속합니다.
python3 -m http.server 8080 --bind 127.0.0.1 --directory distWindows에서는 python3 대신 py를 사용할 수 있습니다. Python이 없다면 코드 편집기의 로컬 정적 서버를 dist에 연결하세요. 종료는 Ctrl + C입니다.
HTML 파일 더블 클릭보다 로컬 서버를 권장합니다. 모듈·이미지 경로를 일관되게 읽을 수 있습니다. 포트가 사용 중이면 8081 등으로 바꾸고 접속 주소에도 반영하세요. npm 설치나 별도 게임 빌드는 필요하지 않습니다.
이 소스로 할 수 있는 일
이 ZIP에 포함된 AI Tools Lab 제작 소스와 게임 에셋은 개인·상업 목적으로 사용, 복제, 수정, 재배포할 수 있습니다. 저작권 소유권이 양도되는 것은 아닙니다. 이 허락은 AI Tools Lab 사이트의 다른 콘텐츠에는 적용되지 않습니다. 포함되지 않은 외부 폰트·상표 등 제3자 자료는 각 권리자의 조건을 따릅니다.
설명에 있는 수정 과제는 직접 비교해 볼 실습 제안입니다. 수행하지 않은 테스트 결과나 제작 당시의 경험을 의미하지 않습니다. 오류를 발견했다면 게임명·브라우저·조작 순서와 함께 알려주세요.