달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
728x90
반응형

안드로이드 - 테트리스 퍼즐 소스(류종택님 강의)

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





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

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