상세 컨텐츠

본문 제목

Android Game - Tetris Puzzle

프로그래밍/Android

by ryujt 2011. 3. 8. 16:56

본문

테트리스 블럭 모양의 퍼즐을 모두 맞춰서 사각형을 완성하면 프로그램이 종료되는 게임에 대한 소스입니다.  




[그림 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)를 통해서 프로그램을 종료시키고 있습니다.

강좌를 만들기 위해서 미리 작성한 예제입니다.  추후 보다 게임의 모양새를 갖춰가면서 강좌를 이어가도록 하겠습니다.

관련글 더보기