프로그래밍/Android
Android Game - Tetris Puzzle
ryujt
2011. 3. 8. 16:56
테트리스 블럭 모양의 퍼즐을 모두 맞춰서 사각형을 완성하면 프로그램이 종료되는 게임에 대한 소스입니다.
- 첨부 파일 또는 http://dev.naver.com/projects/ryulib4android 에서 소스를 다운 받으실 수가 있습니다.
- 게임 엔진은 "게쪽"을 사용하고 있으며, http://ryulib.tistory.com/116 에 자세한 소개와 설명 자료가 있으니 참고하시기 바랍니다.
[그림 1] 게임 소스 전반적인 흐름에 대한 Job Flow
- 게임이 시작되면 TetrisBoard.startGame() 메소드가 실행되고, 이후 전체 조각들이 목록을 관리하는 PieceList.clear()를 통해서 초기화됩니다.
- 바로 이어서 PieceFactory.slice()를 통해서 사각형을 테트리스 블록 모양의 조각(Piece)으로 나눠 줍니다. 이때 랜덤하게 위치를 최대한 서로 겹치지 않도록 배열합니다. slice() 메소드는 새로운 조각을 만들어 내고 배치하고 난 뒤에 OnNewPiece 이벤트를 발생시킵니다.
- OnNewPiece 대한 이벤트 핸들링은 TetrisBoard에서 진행합니다. TetrisBoard의 이벤트 리스너는 PieceList.add()를 통해서 생성된 조각을 관리하도록 합니다.
- 조각(Piece)들은 터치 이벤트를 통해서 이동 시킬 수가 있으며, 이동이 완료되면 OnMoved 이벤트를 발생시킵니다.
- OnMoved 이벤트의 핸들링은 상위 객체인 PieceList의 객체에서 처리합니다. 모든 조각이 제 위치에 있는 지를 점검하고 만약 모든 조각이 제 위치에 있다면, 게임을 종료하는 OnGameEnd 이벤트를 발생시킵니다.
- OnGameEnd 이벤트 역시 상위 객체인 TetrisBoard 에서 처리합니다. 예제에서는 [그림 1]과 같이System.exit(0)를 통해서 프로그램을 종료시키고 있습니다.
강좌를 만들기 위해서 미리 작성한 예제입니다. 추후 보다 게임의 모양새를 갖춰가면서 강좌를 이어가도록 하겠습니다.