일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 데이트
- 도커 시작하기
- java
- ansible install
- 데이터베이스
- 도커 mysql
- 자바
- streamsets 강의
- 백준
- 클라우드
- 알고리즘
- 푸시푸시
- 스트림셋
- MySQL
- 코딩
- 도커 elk
- c++
- 정보처리기사
- mysql on docker
- 앤서블 설치
- 도커
- nvidia docker
- 스트림셋이란?
- C언어
- c
- elk stack
- python
- docker
- mysql docker
- 파이썬
- Today
- Total
리그캣의 개발놀이터
JAVA 텀 프로젝트 - PUSHPUSH 게임 오버워치 (3) 본문
7. 이미지 구성
MenuScene
출처:http://www.hdwallpaper.nu/overwatch-wallpapers/
배경화면은 오버워치게임의 배경화면위에 pushpush이미지를 입혔습니다.
Push 이미지는 상하좌우 변경하여 핸드폰으로
이미지를 보낸 후 Magic Eraser어플리케이션을 이용하여 배경을 투명하게 작업을 하였습니다.
저작권 글씨와 마우스 x,y좌표를 출력하게 하였는데, 이는 해당 위치에 마우스가 위치하고 클릭하면 다음 scene으로 들어 가게 하였습니다.
아이디 입력부분입니다.
playerName.setBackgroundColor(Color.white);
playerName.setBorderColor(Color.orange);
playerName.setTextColor(Color.black);
playerName.setCursorVisible(true);
playerName.render(gc, g);
텍스트필드로 구성하였습니다.
전체 화면입니다. 자 이제 왼쪽 손바닥을 마우스를 가져다 대보겠습니다.
마우스를 가져다 대면 이런식으로 플래쉬이미지가 떠오릅니다. 자 이제 마우스를 클릭하여 다음 scene으로 넘어가 보겠습니다.
ExeCh0_Scene
배경화면은 MenuScene의 배경화면 색을 사용하였으며 그림판과 포토스케이프로 작업하였습니다.
START 버튼입니다.
출처:https://www.iconfinder.com/icons/333620/begin_go_play_power_button_run_start_icon
마우스를 가져다 대면
이런식으로 색상이 반전 되게 설정하였습니다.
전체 화면입니다. 다시 start버튼을 클릭하여 다음 scene으로 넘어가겠습니다.
PlayScene0
맵구성은 PushBox-Sokoban이라는 게임 어플의 맵을 참고 하였습니다.
PlayScene의 MapTile입니다. 여기서는 많은 생각을 하였습니다. 1학기의 c++
텀프로젝트 처럼 2차열 배열을 사용할 것인가. 아니면 TileSet 프로그램을 사용하여 TileSet을 사용 할 것인지, 직접 if제약을 걸어 프로그램 할 것인지 많은 생각을 하였습니다. 첫 번째 방법은 일단 캐릭터의 움직임이 한칸 한칸 이동해야 하는 제약조
건이 생깁니다. 그러나 그 방법은 1학기때 해보았으므로 새롭게 만들어 보고 싶다는
저희의 생각과 많이 상반되었습니다. 두 번째 방법은 TileSet 프로그램을 사용하는 것인데, 이것또한 중간보고서를 발표하면서 너무 타 프로그램에 의지하다 보면 점수상 불이익을 받을 수 있겠다 생각하여 직접 제약조건을 걸기로 하였습니다. 그러하여 제약 조건을 사용한 MapTile을 만들다 보니 매끄럽지 않은 부분이 발생하였지만 수정과수정을 거듭하여 어느 정도 매끄러운 게임플레이를 할 수 있게 되었습니다.
메뉴 화면 구성 부분입니다. 아래에는 입력 키를 보여주었고, 그 아래에는 이벤트를 주었습니다.
앞서 말한 핸드폰 어플과 그림판을 이용하여 png파일로 수정 하였습니다.
출처:https://www.planet-source-code.com/Upload_PSC/ScreenShots/PIC20047271915554337
맨 왼쪽 화살표는 다음 게임으로 넘어가는 부분이고, 두 번째 비행기 표시는 원래 영웅과 화물의 초기 위치로 이동하게 됩니다. 세 번째는 게임 설명화면으로 넘어가게 되고 네 번째 표시는 메뉴화면으로 들어가게끔 만들었습니다.
Mei의 생명력 표시 이미지입니다. 이 이미지는 메뉴 우측 하단에 표시 되며 메이의 생명력을 보여줍니다. 포토스케이프로 작업 하였습니다.
플레이 화면입니다. 다음scene으로 넘어가 보겠습니다.
ExeCh_Scene
다음 Scene입니다. 다음 STAGE를 보충 설명해줍니다.
이 페이지 또한 START 버튼을 누르면 다음 STAGE로 넘어가게 됩니다.
PlayScene
배경화면입니다. simple하게 초점을 뒀습니다. 처음에는 우주이미지를 띄우고 시작
위치를 지구로 설정하고, 도착위치를 달로 설정하였으나, 후에 가보니 화면이 이쁘지 않아보여 여러 가지 시행착오를 걸처 만들었습니다. 포토샵같은 전문 지식이 없어 그림판으로 해결해야하며 둘다 너무 남성적이라 이미지를 이쁘게 하는데는 최선을 다했지만 그만큼의 결과가 나오긴 힘들었다 생각 듭니다.
영웅과 화물의 위치는 다시 한번 PushPush 임을 강조하기 위해서 손바닥 로고를 사용하였습니다. 이 로고는 한번 밀어서 반대 손바닥으로 들어간다는 의미를 가지고있습니다.
Kenzi영웅의 체력입니다. 이 STAGE는 다른 STAGE와 다르게 장애물과 맞닥뜨릴 확률이 높습니다. 그렇기에 총 Energy를 3으로 맞추었으며 ball에 한번 닿으면 1씩 줄어들게끔 셋팅해 놓았습니다. 이미지는 Overwatch 사의 spread이미지를 참고 하였습니다. Kenzi_Energy가 1이되면 Kenzi는 궁극기를 사용할 수 있는데 바뀌는 이미지는 다음과 같습니다.
좌측이미지가 잠시 띄어지며 바로 우측이미지로 넘어가게 됩니다. 해당 이미지는 kenzi가 궁을 쓰고 있다는 것을 뜻합니다. 우측 이미지는 친구한테 부탁하여 제작하였습니다.
scene의 장애물인 balls입니다. 해당 ball은 arraylist를 사용하여 생성하였고 해당 위치에 도착하거나, 영웅과 부딪히면 소멸하게 됩니다. 공과 영웅과의 거리는 화물과 영웅과의 거리처럼 피타고라스의 정리를 이용하여 Max안에 들어오면 소멸하거나 이벤트가 일어나게끔 설정하였습니다. 처음엔 balls가 너무 단조롭다 생각하여 이미지로 만들어 장애물을 만드려 했으나 simple한 디자인에는 너무 멀다생각하여 최대한 basic하게 유지 하기위해 흰색 원을 사용하였습니다. 또한 게임이 너무 어렵지 않게 생성 시간은 줄였으며 크기도 적당하게 유지하였습니다.
전체 플레이 화면입니다. 여기서도 많은 고민이있었는데 이 게임을 여러 가지 형식으로 만들 것이냐는 것이였습니다. 다음 판은 좀 더 어렵게, 그러나 그러면 보고서 쓸 시간이 많이 줄어들 것 같아서 욕심을 많이 안 부리기로 하였습니다.
ExeCh_Scene1
전체 화면입니다. 여러 가지 업그레이드 요소가 많아서 설명문을 앞서 두 SCENE과는 다르게 두 개를 배치하였습니다. 이 장면 또한 START버튼이 있어서 누르게 되면 다음 SCENE을 PLAY할 수 있는데 마지막 GAME을 PLAY할 수 있습니다.
PlayScene1
마지막 게임의 배경화면입니다. 마치 보스 스테이지를 깨는 것처럼 앞의 두 게임과 다른 차가운 이미지를 주었습니다.
플레이 화면입니다. 이 게임은 보너스 게임 형식처럼 만들었는데 앞서 두 게임과는 다르게 총 게임 형식으로 만들었습니다. 버블버블 게임과 스노우 브라더스 라는 게임을 참고 하였습니다. 그만큼 시간이 많이 들어가는 게임 이였고. 저희 게임은 점점 영웅의 스킬이 늘어나며 좀더 업그레이드된 PUSHPUSH게임을 할 수 있다는 장점을 돋보이게 하는 SCENE입니다.
참고 게임인 버블버블과 스노우 브라더스
Ranking
마지막 랭킹 화면입니다. 랭킹은 메뉴 부분에서 처음 손바닥 오른쪽을 클릭해도 진입할 수 있게 만들었고, 맨 마지막 게임이 끝나고 나서 바로 랭킹화면으로 출력됩니다. 텍스트 파일 입출력을 사용하였습니다.
Character
Mei-Scene0의 영웅 캐릭터 입니다.
SpaceBar키를 누를 시 적을 일정시간 얼릴 수 있습니다.
Liffer -Scene0의 영웅 캐릭터 입니다.
일정한 위치를 왔다 갔다 합니다. 처음에는 Random함수를 사용하여
이동 하려 하였지만 움직임이 자연스럽지 않다 생각하여 일정한 위치를 이동합니다.
Kenzi - Scene의 영웅 캐릭터 입니다.
SpaceBar키를 누를 시 적을 일정시간 무적 상태가 되며 이동속도가 빨라집니다.
Soldier - Scene1의 영웅 캐릭터 입니다.
Ctrl을 눌렀을 시 총알이 발사하여 적군을 제거할 수 있고,
SpaceBar키를 누를 시 점프를 할 수 있습니다.
Character
Hanzo - Scene1의 적군 캐릭터 입니다.
Soldier와 대치되며 화살을 발사하는데 화살이 없어질 때마다 한번씩 발사합니다.
루시우 – Scene1에서 화물을 가지고 이동하는 캐릭터입니다.
이 캐릭터를 제거하면 화물이 나오고, 총 두캐릭터 중 하나를 제거 할 시
궁극기가 발동되는데 이 궁극기는 적군을 일정시간동안 무적으로 만드는
효과가 있습니다.
화물 – 좌측이미지는 화물 캐릭터, 우측 이미지는 화물 도착점을 나타냅니다.
영웅 캐릭터가 화물을 옮겨 도착점에 들어가게되면
게임종료와 함께 다음스테이지로넘어가게 설정하였습니다.
이미지 출처
오버워치(블리자드)
http://blog.naver.com/mssixx/220826614925
'팀 활동 > 프로젝트' 카테고리의 다른 글
축구 매칭 홈페이지 - Django를 활용한 최종 구현화면 (0) | 2018.02.05 |
---|---|
JAVA 텀 프로젝트 - PUSHPUSH 게임 오버워치 (4) (0) | 2018.01.28 |
JAVA 텀 프로젝트 - PUSHPUSH 게임 오버워치 (2) (0) | 2018.01.28 |
JAVA 텀 프로젝트 - PUSHPUSH 게임 오버워치 (1) (0) | 2018.01.28 |
축구 매칭 웹 페이지 만들기 - 엔티티 표 2 (0) | 2018.01.25 |