반응형
cpp-tetris
C++ 테트리스 게임
현재 이 프로젝트는 계속해서 기능을 추가하고, 리팩토링 작업도 진행 중입니다.
최신 소스 코드, 개발 환경, 실행 방법은 아래 깃허브에서 확인하실 수 있어요!
전체 소스 코드
https://github.com/rockxxjin/cpp-tetris
GitHub - rockxxjin/cpp-tetris: A simple Tetris game made with SFML in C++
A simple Tetris game made with SFML in C++. Contribute to rockxxjin/cpp-tetris development by creating an account on GitHub.
github.com
주요 기능
1. SFML 기반 GUI
- 게임을 SFML 그래픽 창에서 렌더링합니다.
2. 블록 생성, 이동, 회전
- 7종 테트리스 블록(I, O, T, S, Z, J, L)을 무작위로 생성합니다.
- 블록은 방향키로 좌우 이동(←, →), 하강(↓), 회전(↑)이 가능합니다.
- 착지 시 새로운 블록이 생성됩니다,
3. 블록 충돌 감지 및 복구
- 이동이나 회전 시 충돌이 발생하면, 원래 위치로 복구하여 잘못된 이동을 방지합니다.
4. 자동 낙하 (Auto Drop)
- 블록은 1.5초마다 자동으로 한 칸씩 하강합니다.
5. Hard Drop 기능
- 스페이스바(Space)를 누르면 블록이 즉시 최하단까지 낙하합니다.
- 착지와 동시에 고정되며, 다음 블록이 생성됩니다.
6. Ghost Piece 기능
- 현재 블록이 어디에 착지할지 미리 시각적으로 표시해주는 기능입니다.
- 투명한 형태의 블록으로 렌더링됩니다.
7. 줄 삭제 (Line Clear)
- 가로 한 줄이 모두 블록으로 채워지면 해당 줄이 삭제됩니다.
- 위에 쌓인 블록들이 자연스럽게 아래로 내려옵니다.
8. 게임 종료 처리
- 쌓인 블럭이 화면 상단의 가상의 게임 종료선(END_LINE)에 닿으면 게임이 종료됩니다.
- 종료 시 "Game Over" 메시지를 출력하고 프로그램을 종료합니다.
9. 레벨 및 스코어
10. 레벨에 따라 블록 낙하 속도 증가
반응형