버블 액션 · SOURCE GUIDE
BUBBLE HOP
발판을 오르내리며 적을 비눗방울에 가두는 플랫폼 게임입니다. 이동·점프·포획을 분리해 작은 액션 규칙을 조합하는 방식을 살펴봅니다.
AI Tools Lab · · 소스 v1.0.0

맞히는 순간과 마무리하는 순간이 다릅니다
BUBBLE HOP은 적에게 버블을 맞히는 것으로 끝나지 않습니다. 갇힌 상대에게 접근하거나 버블을 한 번 더 맞혀 터뜨리는 과정이 이어집니다. 멀리서 안전하게 가두는 행동과 가까이 다가가 마무리하는 행동이 다른 위험을 만들도록 구성되어 있습니다.
다섯 정원의 발판 배치는 서로 다릅니다. 버블을 쏠 위치뿐 아니라 갇힌 적에게 접근할 발판까지 생각해야 하므로, 지형이 조작의 일부가 됩니다.
발판 데이터부터 열어보기
dist/engine.js에는 LEVELS와 THEMES, BubbleGame이 있습니다. LEVELS의 p는 발판의 x·y·폭 배열이고 e는 적의 초기 배치입니다. dist/game.js는 입력, 효과음과 화면 그리기를 연결합니다.
첫 스테이지의 발판 예시 [45,430,230]은 그림 파일이 아니라 위치와 너비를 표현하는 데이터입니다. 이 구조를 이해하면 새 배경을 그리지 않아도 발판 배치만으로 플레이 경로를 바꿔볼 수 있습니다.
화면의 위쪽은 작은 y 값
Canvas에서는 y 값이 작아질수록 위로 올라갑니다. 발판을 높이고 싶다면 숫자를 줄여야 합니다. 다만 좌표만 높이면 점프로 닿지 못하는 구간이 생길 수 있으므로, 아래 발판과의 높이 차이를 함께 확인해야 합니다.
overlap()과 circleRect()는 서로 다른 형태의 접촉을 다룹니다. 발판·캐릭터처럼 네모난 범위와 버블처럼 둥근 범위를 같은 방식으로만 처리하지 않는다는 점이 학습 포인트입니다.
직접 바꿔볼 과제: 쉬운 우회로 추가하기
- 첫 스테이지의 발판 하나만 옆으로 조금 이동합니다.
- 같은 적에게 접근하는 경로가 짧아졌는지, 착지 공간이 충분한지 비교합니다.
- 다음에는 발판의 위치를 유지하고 너비만 바꿔봅니다.
발판과 적 배치를 동시에 변경하면 경로 변화와 적의 압박을 구분하기 어렵습니다. 먼저 이동 동선을 확정한 뒤 적 배치를 조절하는 순서가 읽기 쉽습니다.
확인할 경계 상황
발판 가장자리에서 점프할 때, 아래에서 발판을 통과할 때, 버블에 갇힌 적이 풀릴 때를 나누어 확인합니다. 스테이지 재시작 시 목숨·제한 시간·남은 적 수가 의도대로 돌아오는지도 점검하세요. 모든 정원의 배치를 한꺼번에 바꾸기보다 첫 정원에서 수정 방법을 익히는 편이 안전합니다.
내 컴퓨터에서 실행하기
- 소스 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자 자료는 각 권리자의 조건을 따릅니다.
설명에 있는 수정 과제는 직접 비교해 볼 실습 제안입니다. 수행하지 않은 테스트 결과나 제작 당시의 경험을 의미하지 않습니다. 오류를 발견했다면 게임명·브라우저·조작 순서와 함께 알려주세요.