application name : locat - jnu.ac.krdnslab.jnu.ac.kr/classes/old_courses/2019f_ood/... ·...

8
Application Name : LoCat Team #1(P.O.G) 강미혜(164219) 이창석(154329) 최명규(125236) 최지성(154322) Dept. Electronics and Computer Engineering Chonnam National University Gwangju I. 동기 우리 팀은 회의에서 모두가 게임을 개발하고 싶어하였다. 개발자와 대상, 모두가 즐거운 요소가 게임이라고 생각했다. 그리고 전남대학교 학생들에게 친근한 소재(고양이)이용하기로 하였다. 고양이를 좋아하지만 키울 없는 학생들의 마음을 반영해서 고양이와 사람이 각각 상황을 이겨내며 함께 만나는 이야기를 만들었다. 고양이(2D)유대감을 만들며 스테이지를 클리어 하면서 학생들의 스트레스가 조금이나마 해소되고 힐링하기를 기대해 본다. 어떤 게임의 종류를 개발할 것인가 의논하다가 다양한 진행 방식이 나왔고 2 가지의 진행 방식을 채택하였다. II. 특징 A. Characteristics of the target application 게임의 진행 방식은 다음과 같다. 스토리를 따라 진행이 되기 때문에 순서는 고정되어 있다. 처음은 고양이가 스크롤 모드로 진행되고 두번째는 사람이 Topview 모드로 진행된다. 첫번째 진행 방식을 편하게 A 모드라 명명하고 두번째 진행 방식을 B 모드라 명명한다. 스테이지를 깨면 자동으로 진행 상황이 저장된다. 스크롤 모드에선 고양이가 장애물을 피하고 모든 아이템을 먹어 다음 스테이지로 넘어가야 클리어가 된다. 조작은 방향키와 점프를 이용한다. Topview 모드에선 사람이 NPC 에게 다가가 퀴즈(문제)풀어야 다음 스테이지로 넘어갈 있다. 주어진 조건을 완수하면 스테이지가 클리어가 된다. 조작은 방향키와 마우스를 이용한다. A 모드의 진행 방식은 슈퍼 마리오의 진행 방식을 이용한다. 고양이가 장애물을 피하고 츄르(아이템)먹어야 다음 스테이지로 진행이 가능하다. B 모드는 사람을 움직여 NPC 다가가 NPC 주는 문제를 풀어야 진행이 가능하다. 문제는 간단한 퍼즐이며 진행하는데 지루하지 않도록 다양한 퍼즐을 만들 예정이다. B. Related applications. 첫번째 관련된 게임 슈퍼 마리오방향키와 점프키를 이용하여 장애물을 피하고 아이템을 먹으며 악당들을 무찌르고 잡혀간 공주를 구하러 가는 게임이다. 두번째 관련된 게임 하트 하트방향키를 이용하여 캐릭터를 움직여 설치되어 있는 퍼즐에 다갈 있다. 퍼즐을 풀어서 스테이지를 진행하며 하트를 모으는 게임이다. III. REQUIREMENT LISTS -기본화면 1) 게임시작버튼이 입력되면 게임을 시작한다.(고양이 스테 이지1이 시작된다.) 2) 불러오기버튼이 입력되면 저장된 데이터를 가져온다. 3) 뮤트키로 배경음악을 키고 끈다. 4) 나가기버튼으로 게임을 종료한다. -고양이 1) 키이벤트를 받아서 방향에 맞게 이동한다. 2) 점프 키를 입력하면 점프한다. 3) 발판으로 올라간다. 4) 장애물에 충돌하면 라이프가 떨어진다. 5) 필드 내에 츄르를 먹으면 이를 인식한다. 6) 필드 내 모든 츄르를 먹으면 다음 스테이지로 넘어간다.

Upload: others

Post on 07-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Application Name : LoCat - jnu.ac.krdnslab.jnu.ac.kr/classes/old_courses/2019f_ood/... · Application Name : LoCat Team #1(P.O.G) 강미혜(164219) 이창석(154329) 최명규(125236)

Application Name : LoCat Team #1(P.O.G)

강미혜(164219) 이창석(154329) 최명규(125236) 최지성(154322)

Dept. Electronics and Computer Engineering

Chonnam National University

Gwangju

I. 동기

우리 팀은 첫 회의에서 모두가 게임을 개발하고

싶어하였다. 개발자와 대상, 모두가 즐거운 요소가

게임이라고 생각했다. 그리고 전남대학교 학생들에게

친근한 소재(고양이)를 이용하기로 하였다. 고양이를

좋아하지만 키울 수 없는 학생들의 마음을 반영해서

고양이와 사람이 각각 상황을 이겨내며 함께 만나는

이야기를 만들었다. 고양이(2D)와 유대감을 만들며

스테이지를 클리어 하면서 학생들의 스트레스가

조금이나마 해소되고 힐링하기를 기대해 본다. 어떤

게임의 종류를 개발할 것인가 의논하다가 다양한 진행

방식이 나왔고 그 중 2 가지의 진행 방식을 채택하였다.

II. 특징

A. Characteristics of the target application

게임의 큰 진행 방식은 다음과 같다. 스토리를 따라

진행이 되기 때문에 순서는 고정되어 있다. 처음은

고양이가 횡 스크롤 모드로 진행되고 두번째는

사람이 Topview 모드로 진행된다. 첫번째 진행 방식을

편하게 A 모드라 명명하고 두번째 진행 방식을 B

모드라 명명한다. 스테이지를 깨면 자동으로 진행

상황이 저장된다. 횡 스크롤 모드에선 고양이가

장애물을 피하고 모든 아이템을 먹어 다음 스테이지로

넘어가야 클리어가 된다. 조작은 방향키와 점프를

이용한다. Topview 모드에선 사람이 NPC 에게 다가가

퀴즈(문제)를 풀어야 다음 스테이지로 넘어갈 수 있다.

주어진 조건을 완수하면 스테이지가 클리어가 된다.

조작은 방향키와 마우스를 이용한다.

A 모드의 진행 방식은 슈퍼 마리오의 진행 방식을

이용한다. 고양이가 장애물을 피하고 츄르(아이템)을

먹어야 다음 스테이지로 진행이 가능하다. B 모드는

사람을 움직여 NPC 에 다가가 NPC 가 주는 문제를

풀어야 진행이 가능하다. 문제는 간단한 퍼즐이며

진행하는데 지루하지 않도록 다양한 퍼즐을 만들

예정이다.

B. Related applications.

첫번째 관련된 게임 ‘슈퍼 마리오’는 방향키와

점프키를 이용하여 장애물을 피하고 아이템을 먹으며

악당들을 무찌르고 잡혀간 공주를 구하러 가는

게임이다.

두번째 관련된 게임 ‘하트 인 더 하트’는 방향키를

이용하여 캐릭터를 움직여 설치되어 있는 퍼즐에 다갈

수 있다. 이 퍼즐을 풀어서 스테이지를 진행하며

하트를 모으는 게임이다.

III. REQUIREMENT LISTS

-기본화면

1) ‘게임시작’ 버튼이 입력되면 게임을 시작한다.(고양이 스테

이지1이 시작된다.)

2) ‘불러오기’ 버튼이 입력되면 저장된 데이터를 가져온다.

3) ‘뮤트’키로 배경음악을 키고 끈다.

4) ‘나가기’버튼으로 게임을 종료한다.

-고양이

1) 키이벤트를 받아서 방향에 맞게 이동한다.

2) 점프 키를 입력하면 점프한다.

3) 발판으로 올라간다.

4) 장애물에 충돌하면 라이프가 떨어진다.

5) 필드 내에 츄르를 먹으면 이를 인식한다.

6) 필드 내 모든 츄르를 먹으면 다음 스테이지로 넘어간다.

Page 2: Application Name : LoCat - jnu.ac.krdnslab.jnu.ac.kr/classes/old_courses/2019f_ood/... · Application Name : LoCat Team #1(P.O.G) 강미혜(164219) 이창석(154329) 최명규(125236)

7) 모든 라이프를 잃으면 게임이 종료(restart)된다.

8) 스테이지가 시작할 때, 자동 저장한다.

- 사람

1) 키이벤트를 받아서 방향에 맞게 이동한다.

2) 퍼즐을 만나면 상호작용한다.

3) 퍼즐을 틀렸을 때 스테이지를 다시 시작한다.

4) 퍼즐의 조건을 만족시키면 다음 스테이지로 넘어간다.

5) ‘다시 시작’버튼이 입력되면 다시 시작한다.

6) 스테이지가 시작할 때, 자동 저장한다.

7) 마지막 스테이지가 끝나면 게임이 클리어 된다. (엔딩 화면

이 출력된다.)

IV. USECASES

1.메인 화면

1.1. 새로 시작 버튼 : 누르면 첫 스테이지로 이동한다.

1.2. 불러오기 버튼 : 저장되어있는 스테이지로 이동한다.

1.3. 뮤트 버튼 : 배경음악을 키고 끈다.

1.4 나가기 버튼 : 게임을 종료한다.

2.고양이 스테이지

2.1 스테이지가 시작될 때 스테이지 위치 정보가 저장된

다.

2.2 스테이지가 그려지고 고양이 캐릭터는 좌측하단 라이

프는 우측상단에 표시된다.

2.3. 키보드의 입력을 받는다.

2.3.1 좌우 화살표로 왼쪽 오른쪽으로 이

동한다.

2.3.2 스페이스바로 점프 할 수 있다.

2.3.3 위쪽 화살표로 사다리를 탈수 있다.

2.4 고양이 이벤트

2.4.1 고양이와 장애물이 만나면 고양이의 라이프가

감소한다.

2.4.1.1 고양이의 라이프가 남아있으면 뒤로 밀

려난 이후 다시 게임을 진행한다.

2.4.1.2 고양이의 라이프가 다 떨어지면 그 스

테이지의 처음으로 돌아간다.

2.4.2 고양이가 츄르와 만나면 이를 인식

한다.

2.1.4.2.1 츄르를 다 먹지 못하였을 때는 계속

진행한다.

2.1.4.2.2 스테이지내의 츄르를 다 모았을 때

사람스테이지로 넘어간다.

3. 사람스테이지

3.1 스테이지가 시작될 때 스테이지 위치 정보가 저장된

다.

3.2. 스테이지가 그려지고 사람 캐릭터가 지정된 위치에

나타난다.

3.3. 키보드의 입력을 받는다.

3.3.1 상하좌우화살표로 왼쪽 오른쪽 아래 위쪽으로 이동

한다.

3.3.2 스페이스바를 누르면 스테이지를 다시 시작한다.

3.4스테이지마다 다른 종류의 퍼즐을 풀게 된다.

3.4.1 한붓그리기 퍼즐

3.4.1.1 한붓그리기 퍼즐에서는 플레이어가 지

나간 길을 나타낸다.

3.4.1.2 플레이어가 지나간 길을 다시 지나가면

스테이지를 다시 시작한다.

3.4.1.3 플레이어가 지정된 길이 아닌 다른 길

로 다른 방법으로 포인트를 찍으면 스테이지를

다시 시작한다.

3.4.1.4 플레이어가 지나간 길을 지나지 않고

지정된 길을 다 채우면 다음스테이지로 넘어간

다.

3.4.2 빙판길 퍼즐

3.4.2.1 빙판 퍼즐에서는 벽에 닿을 때까지 한

쪽방향으로밖에 가지 못한다.

3.4.2.2 퍼즐을 풀어 지정된 장소에 도착 시 다

음스테이지로 넘어간다.

4. 마지막 스테이지가 끝나면 엔딩 화면이 출력되고 초기화면

으로 돌아간다.

V. USECASE DIAGRAM

Page 3: Application Name : LoCat - jnu.ac.krdnslab.jnu.ac.kr/classes/old_courses/2019f_ood/... · Application Name : LoCat Team #1(P.O.G) 강미혜(164219) 이창석(154329) 최명규(125236)

VI. FUNCTION SPECIFICATION

Music(String, boolean)

: 생성자, 반복여부를 확인하며 곡을 가져온다.

getTime()

: 현재 재생중인 음악의 실행 위치를 알려준다..

close()

: 음악을 수동으로 정지시킨다.

run()

: 쓰레드를 실행한다.

StartFrame()

: 생성자, 프레임을 설정한다.

setButton()

: 게임시작, 게임로딩, 나가기 버튼을 구현한다.

setMenubar ()

: 메뉴바를 구현한다..

void save()-스테이지 위치 저장 함수

int loading()-저장된 스테이지 위치 불러오는 함수

boolean checkBeforeFile(File file)-저장된 파일이 있는지

없는지 확인하는 함수 있으면 true

itemCheck() - 맵에 있는 아이템을 모두 먹었는지

체크하는 함수

lifeCheck() - 현재 라이프가 남아있는지 체크하는 함수

setInit() - 캐릭터의 좌표와 라이프를 초기화하는 함수

paintStage1,2() - 고양이스테이지에서 필요한 이미지를

그리는 함수

drawDog(ImageObserver, int, int, Dog) - 장애물(개)을

그리는 함수

drawIcicle(ImageObserver, int, int, Icicle) -

장애물(고드름)을 그리는 함수

drawItem(ImageObserver, int, int, int) - 아이템(츄르)를

그리는 함수

drawItem(ImageObserver, boolean, int, int) - 라이프를

체크하여 하트 이미지를 그리는 함수

move() - 장애물의 움직임을 구현한 함수

crush() - 캐릭터와 장애물 사이에서 충돌이

발생하였는지 판단하는 함수

void init() – 스테이지 별 캐릭터의 초기값을 지정하는

함수

void checkBoundary() – 캐릭터가 맵의 boundary 밖으로

나가는지 체크하는 함수

void changePanel(int) – menu 와 stage 패널을 switch 하는

함수

void on_Block() – 고양이가 발판위에 있는 지 체크하는

함수

void is_Bottom() – 고양이가 공중에 떠있는 지 체크하는

함수

void on_Ladder() – 고양이가 사다리를 탈 수 있는 지

체크하는 함수

void KeyProcess() – 고양이가 입력된 키와 상태에 따라

행하는 행동을 정의한 함수

FindLoadPuzzle() - 각자 좌표를 설정하고 캐릭터의

좌표가 해당 좌표에 갈때마다 저장하고 직전에 들렷던

좌표와 함께 fload1,2,3 변수를 저장한다.

findLoadReset() - 위에 저장한 fload1,2,3 을 사용하여

틀린길인지 체크하여 틀린길이면 스테이지를

리셋시킨다.

checkMark(ImageObserver Frame) - 위에 저장한

fload123 을 사용하여 맞는길인지 체크하고 맞는길이면

길 중간에 O 표시를 그린다.

동시에 지나간길을 다른 배열에 저장한다

clearStage() - 그려진 마크 수를 체크하여 모든 마크가

그려지면 stageclearflag 를 true 로 바꾼다

checkReset() - 위에 checkmark 에 저장한 지나간길에

다시 지나가는지를 체크하여 똑같은 길을 두번

지나가면 리셋시킨다

Page 4: Application Name : LoCat - jnu.ac.krdnslab.jnu.ac.kr/classes/old_courses/2019f_ood/... · Application Name : LoCat Team #1(P.O.G) 강미혜(164219) 이창석(154329) 최명규(125236)

resetMark()- 스테이지를 리셋시킬때 그려진 마크를

없애고 관련된 변수들을 리셋시키는 함수이다.

slide() - 얼음길 스테이지에서 얼음길 안에 있으면

캐릭터가 미끄러지는 함수이다

onIwall() - 얼음길 안에 돌들과 캐릭터가 만나면

멈추게 만드는 함수이다.

VII. SEQUENCE DIAGRAM

-메인화면

-고양이 스테이지

-사람 스테이지

VIII. USER INTERFACE DESIGNS

--메인화면

1.게임시작 버튼 : 첫번째 스테이지로 이동한다.

2.불러오기 버튼 : 저장된 스테이지부터 게임을

시작한다.

3. 스피커 아이콘 : 게임의 사운드를 음소거 하거나

다시 켤 수 있다.

Page 5: Application Name : LoCat - jnu.ac.krdnslab.jnu.ac.kr/classes/old_courses/2019f_ood/... · Application Name : LoCat Team #1(P.O.G) 강미혜(164219) 이창석(154329) 최명규(125236)

--사람 스테이지

1. 사람스테이지는 케릭터, npc, 퍼즐로 구성되어 있다.

2. 케릭터와 npc 가 상호작용하면 npc 의 대사가

출력되고 퍼즐을 풀 수 있게 된다.

3. 퍼즐을 푸는도중 스페이스키로 퍼즐을 초기화 할

수 있다.

4. 퍼즐을 풀고 조건을 만족하거나 지정된 위치로

이동하면 다음스테이지로 넘어가게된다.

--고양이 스테이지

1. 고양이 스테이지에는 장애물과 아이템(츄르)가

있고 사람스테이지와는 다르게 라이프가 존재한다.

2. 고양이가 장애물에 부딪히면 라이프가 감소하게

된다.

3. 라이프가 모두 소모되면 스테이지를 다시 시작한다.

4. 아이템(츄르)가 있는 곳으로 가면 아이템을 획득

할 수 있다.

Page 6: Application Name : LoCat - jnu.ac.krdnslab.jnu.ac.kr/classes/old_courses/2019f_ood/... · Application Name : LoCat Team #1(P.O.G) 강미혜(164219) 이창석(154329) 최명규(125236)

5. 맵에 있는 아이템을 모두 획득하면 다음스테이지로

이동한다.

IX. CLASS DIAGRAM

X. SCREENSHOT OF API MANUAL

Block.java

gameSave api manual

Stage api manual

Page 7: Application Name : LoCat - jnu.ac.krdnslab.jnu.ac.kr/classes/old_courses/2019f_ood/... · Application Name : LoCat Team #1(P.O.G) 강미혜(164219) 이창석(154329) 최명규(125236)

XI. SCREENSHOT OF APPLICATION DEMO

MENU PANEL

STAGE1

STAGE2

STAGE3

Page 8: Application Name : LoCat - jnu.ac.krdnslab.jnu.ac.kr/classes/old_courses/2019f_ood/... · Application Name : LoCat Team #1(P.O.G) 강미혜(164219) 이창석(154329) 최명규(125236)

STAGE4

XII. WORK DISTRIBUTION