본 프로젝트는 대한민국 오락실 감성의 세로 스크롤 슈팅 게임을 Python과 Streamlit을 이용해 구현한 과제용 프로젝트입니다. 플레이어는 키보드로 비행기를 조작하며, 10초 동안 생존하면 게임을 클리어하는 구조입니다.
본 프로젝트는 Python 기반 웹 프레임워크인 Streamlit을 활용하여 간단한 게임을 구현해보는 것을 목표로 한 미니 프로젝트입니다.
기존의 Python 콘솔 프로그램이나 단순 UI를 넘어, 웹 환경에서 실행 가능한 인터랙티브한 프로그램을 구현하고자 하였으며, 짧은 시간 안에 누구나 쉽게 플레이할 수 있는 세로 스크롤 아케이드 슈팅 게임을 주제로 선정하였습니다.
또한 제한된 플레이 시간(10초)을 통해 게임 규칙을 단순화하고, 핵심 로직(이동, 충돌 판정, 타이머)을 명확히 구현하는 데에 초점을 두었습니다.
- 장르: 세로 스크롤 아케이드 슈팅 게임
- 플레이 시간: 10초 (고정)
- 목표: 적 비행기 및 적 탄과 충돌하지 않고 생존
- 특징: Python(Streamlit) + JavaScript(Canvas) 연동
- 방향키 (← ↑ → ↓): 이동
- Q 키: 단발 공격
- W 키: 스프레드 공격
- 플레이어는 키보드 방향키로 이동하며 화면 밖으로는 이동할 수 없다.
- Q 키는 정밀한 단발 공격, W 키는 다수의 적을 처리하기 위한 스프레드 공격으로 설계하였다.
- 적 비행기는 일정 주기로 상단에서 생성되며, 플레이어와 충돌 시 게임 오버 처리된다.
- 게임 타이머는 JavaScript에서 관리하며 10초 생존 시 Clear 상태로 전환된다.
- Python 3.x
- Streamlit (웹 UI 및 실행 환경)
- JavaScript (Canvas, requestAnimationFrame 기반 게임 로직)
- streamlit.components.html (iframe 렌더링)
- Python + Streamlit: 간단한 코드로 웹 애플리케이션을 빠르게 구현 가능, Python 프로젝트로서 실행과 배포가 용이함
- JavaScript(Canvas): 실시간 애니메이션과 키 입력 처리에 적합, Streamlit 단독 구현의 한계를 보완
project/
├─ main.py # Streamlit 엔트리 포인트
└─ README.md # 프로젝트 설명
- Python 3.9 이상 권장
- Streamlit 설치 필요
python3 -m venv .venv
source .venv/bin/activate
python -m pip install streamlit
python -m streamlit run main.pypython -m venv .venv
.\.venv\Scripts\activate
python -m pip install streamlit
python -m streamlit run main.py브라우저가 자동으로 열리며, 열리지 않을 경우 아래 주소로 접속합니다.
http://localhost:8501
- Streamlit을 이용해 Python 기반 웹 애플리케이션 실행
- HTML + JavaScript(Canvas)를 iframe으로 삽입하여 게임 화면 렌더링
- JavaScript에서 게임 루프, 충돌 판정, 타이머 처리
- 10초 생존 시 Clear, 충돌 시 Game Over
- Streamlit iframe 특성상 게임 화면을 한 번 클릭해야 키 입력이 정상 동작할 수 있습니다.
- 본 프로젝트는 학습 목적의 학교 과제용 프로젝트입니다.