3D Domino 기획서
2001037247 신동인
프로젝트 명칭
3D 도미노(3D Domino)
개요
어린 시절 간단하면서도 재미있게 했던 도미노 게임을 컴퓨터 프로그램으로 즐길 수 있게
만들어 보자는 아이디어로 3D 도미노 게임을 만들어볼 생각입니다.
도미노를 사용자가 원하는 대로 배치할 수 있게 하여 원하는 도미노의 전체 모양을 만들게
한 다음에 시작지점의 도미노가 쓰러지면서 차례대로 도미노가 쓰러지는 모습을 수업시간에
배운 OpenGL을 활용하여 3D로 입체감 있는 화면을 보여줄 것입니다.
개발 환경
개발도구 Visual Studio 2005
언어 C++
라이브러리 OpenGL, GLUT
플렛폼 Windows XP SP2
시스템 Pantium4 3.0Ghz
개발일정
블록을 세우기 모드(SELECT MODE)
초기상태는 보드 위에 빈 타일만 존재한다. 유저가 블록을 선택한 후 빈 타일을 클릭하여
블록을 타일 위에 세운다. 시작타일을 지정하고 시작 메뉴를 선택하면 블록이 쓰러지기 시
작하고 블록이 쓰러지는 모드로 바뀐다.
블록이 쓰러지는 모드(PLAY MODE)
시작블록을 쓰러뜨리면 카메라의 시점은 쓰러지는 블록의 45도 위 각도로 따라가며 쓰러지
는 블록을 보여주며 블록이 멈추면 블록 세우는 모드 시점으로 돌아온다.
도미노 게임의 객체의 크기
- 보드의 크기는 가로 30, 세로 30이다.
- 타일의 크기는 가로 3, 세로 3 크기이다.
- 블록의 크기는 가로 2, 세로 1, 높이 4이다.
보드는 평면으로 10x10의 타일로 이루어져 있다.
하나의 블록은 하나의 타일공간을 차지한다.
시작블록은 보드상에 하나만 존재하며 시작블록을 클릭할 때마다 힘의 방향이 바뀐다.
(위에서 본 모양)
일반블록은 가로 방향, 세로 방향, 대각선 방향이 있다.
블록의 종류별로 힘의 종류에 따라 넘어지는 방향
- 블록에 가해지는 힘은 8방향이다.
- 세로 타일의 경우
넘어진 블록이 미치는 영향력
블록의 연쇄반응에 대한 처리
트리, 재귀호출, 버퍼 중에 하나를 사용하여 구현한다.
트리의 경우 PLAY 모드시 블록들을 트리로 구성한다. 시작 블록을 루트 노드로 그 다음 처
리할 블록을 자식으로 구성하고, 각 레벨순서로 처리를 한다. 카메라 시점의 경우 루트에서
가장 많은 레벨을 가진 노드까지 리스트를 구성한 뒤에 리스트의 블록의 좌표를 따라서 카
메라가 이동한다. 또는 카메라 시점만 전환하고 위치 고정.
블록 정보
종류: 블록 없음, 시작 블록, 일반 블록
좌표: 블록이 위치한 타일의 좌표
상태: 세워진 상태(힘 0), 쓰러진 상태(힘 1~8)
영향력: 자신의 주위 9개 블록 중 영향력을 미치는 블록
타일 정보
블록정보