벽돌깨기 · SOURCE GUIDE
PRISM BREAK
패들로 공을 받아 벽돌을 지우는 게임입니다. 공이 닿은 위치에 따라 반사 방향이 달라지는 원리와 벽돌 내구도를 함께 살펴봅니다.
AI Tools Lab · · 소스 v1.0.0

공을 받는 위치가 다음 경로를 만듭니다
PRISM BREAK는 아래로 떨어지는 공을 패들로 받아 벽돌을 없애는 게임입니다. 공을 패들의 중앙에서 받는지 가장자리에서 받는지에 따라 다음 반사 방향이 달라집니다. 단순히 공 밑으로 이동하는 것에서 한 걸음 더 나아가 다음 경로를 만드는 조작입니다.
벽돌에는 내구도가 있고 연속 파괴는 콤보와 점수에 연결됩니다. 한 번 맞아도 남는 벽돌과 바로 없어지는 벽돌을 구분해서 보면 렌더링과 규칙이 어떻게 연결되는지 이해하기 쉽습니다.
엔진을 읽는 순서
dist/engine.mjs는 게임 상태, 공·패들·벽돌과 충돌을 담당합니다. app.mjs는 마우스와 키보드 입력, 화면 그리기를 맡고 HTML·CSS는 정보판과 배치를 구성합니다.
move()는 패들을 움직이고 launch()는 준비 상태에서 공을 발사합니다. step()은 시간이 흐를 때의 움직임과 충돌을 계산합니다. 같은 버튼도 준비·진행·일시정지 상태에 따라 다른 역할을 한다는 점부터 확인하세요.
숫자 하나만으로 속도를 읽지 않기
발사 속도는 325 + this.level * 35로 계산됩니다. 그 속도가 x·y 성분으로 나뉘어 공의 방향을 만듭니다. 한 축의 속도만 무작정 높이면 전체 속도뿐 아니라 각도까지 달라집니다.
벽돌의 남은 개수는 아직 내구도가 있는 항목을 세어 표시합니다. 화면 숫자만 줄이는 대신 실제 벽돌 상태를 바꿔야 그리기와 클리어 조건이 일치합니다.
직접 바꿔볼 과제: 천천히 읽는 반사각
launch()의 기본 속도를 조금 낮춰 패들의 중앙과 양끝에서 받는 상황을 비교합니다.- 다른 조건은 유지하고 공의 다음 경로를 기록합니다.
- 속도를 원래대로 돌린 뒤 벽돌 배열이나 내구도 변화에 도전합니다.
수정할 때는 진행 중인 판을 그대로 비교하지 말고 재시작한 같은 스테이지에서 출발하는 편이 좋습니다. 이전 공의 위치와 콤보가 비교를 흐리지 않도록 하기 위해서입니다.
실행 환경에서 확인할 것
공이 벽돌 모서리를 지날 때, 패들 끝에 닿을 때, 마지막 벽돌을 지울 때를 나누어 확인합니다. 웹 글꼴은 외부 Google Fonts를 요청하지만 게임 소스 자체는 ZIP 안에 있습니다. 글꼴 연결이 되지 않는 상황과 게임 로직 오류를 혼동하지 않도록 대체 글꼴에서도 조작을 확인하세요.
내 컴퓨터에서 실행하기
- 소스 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 설치나 별도 게임 빌드는 필요하지 않습니다.
이 게임은 Google Fonts에서 화면 글꼴을 요청합니다. 인터넷 연결이 없으면 대체 글꼴로 표시됩니다.
이 소스로 할 수 있는 일
이 ZIP에 포함된 AI Tools Lab 제작 소스와 게임 에셋은 개인·상업 목적으로 사용, 복제, 수정, 재배포할 수 있습니다. 저작권 소유권이 양도되는 것은 아닙니다. 이 허락은 AI Tools Lab 사이트의 다른 콘텐츠에는 적용되지 않습니다. 포함되지 않은 외부 폰트·상표 등 제3자 자료는 각 권리자의 조건을 따릅니다.
설명에 있는 수정 과제는 직접 비교해 볼 실습 제안입니다. 수행하지 않은 테스트 결과나 제작 당시의 경험을 의미하지 않습니다. 오류를 발견했다면 게임명·브라우저·조작 순서와 함께 알려주세요.