SYeonni Study Room

삽질기사 모작(사진정리) 본문

게임제작/MFC&D2D

삽질기사 모작(사진정리)

SYeonni 2021. 9. 7. 20:32

 캐릭터 선택

- 스크롤 값에 따라서 캐릭터 선택 이미지가 변경되는것을 구현

> 알파값으로 따로 조정하지않음 (이유 : 알파값을뺀것보다 흑백사진을 이용하는게 좀 더 이쁘기때문) 

> 유저가 좌우키를 이용해서 스크롤 조정 

   - 이미지는 그대로 있고 스크롤값 변경되도록 구현했다. 

 

인벤토리

- 인벤토리를 열면 플레이어가 보유한 매직물약갯수에 따라서 자체 아이템 구매를 할 수 있다. 

> 좌우위아래로 이동하여 아이템 정보를 확인 할 수 있다. 

> 아이템 정보는 해당 아이템에 맞게 출력된다. 

     - 커서객체와 아이템 객체의 충돌을 이용

> 아이템정보에 매직물약갯수를 각각 설정하여 구매가능/ 구매불가를 분리시켰다. 

   - 구매 불가 시 빨간 커서 이미지가 출력되고 구매버튼(D)을 눌러도 구매 불가(사운드도 미출력)

   - 구매 가능 시 파란 커서 이미지가 출력되고 구매버튼(D)을 눌르면 매직물약 차감 및 허드에 아이템 이미지 출력, 구매 사운드 출력

 

 

사다리

 

 

- 플레이어가 사다리(타일로 옵션값을 주어 설정)를 그냥 지나칠수있다.

- 타일 충돌은 사다리의 경우 플레이어 위아래로만 충돌체크 하였다. 

- 플레이어가 사다리에 위치한 상태에서 위키를 누르면 그때 사다리를 타도록 구현했다. 

- 사다리 타는 도중 좌우 방향키를 누르면 사다리를 중간에 탈출할 수 있다. 

 

 보물상자/ 보석돌무덤

- 보석상자

> 닫혀있는 상태에서 플레이어가 공격하면 열쇠가 열리면서 플레이어 모션이 바뀌고 보석이 출력된다.

> 보석은 이미지 drawid를 통해서 좌우로 나오게함

> 그냥 떨어지는것이 아닌 포물선운동을 하도록 함

> 열쇠도 객체를 따로 만들어서 해당 열쇠가 떨어져 나오는것처럼 좀 더 생생하게 만들었음 

 

- 보석돌무덤

> 플레이어가 공격할때마

다 보석이 튀어나오고 돌무덤 이미지가 변경됨

> 보석이 튕겨나올때 x/y 값에 랜덤값을 더해서 일정하지않고 각각 다르게 튕기도록 하였음

> 돌무덤이 작아지면서 소멸된 후에 플레이어가 계속 공격해도 보석이 출력되지 않고 돌무덤은 아예 객체를 dead시켰음

 

 

 

패링

1. 물방울

> 물방을은 그냥 점프해서 지나가면 터지지않음

> 아래 공격모션을하고 물방울위에 점프할경우 패링되어 점프된다.

그냥지나치면 패링안됨

 

2. 몬스터 공격

> 몬스터가 공격 시 타이밍에 맞게 공격할 시 몬스터 공격이 패링된다.

> 타이밍이 안맞거나 공격안할 시 몬스터 공격에 피해를 입는다. 

 

3. 몬스터

> 기본적으로 몬스터를 위에서 공격 시 몬스터가 피해를 입거나 죽게된다.  이때 플레이어는 패링을 할수있다. 

 

 

4. 오브젝트

> 충돌체크를 통해서 몇몇의 오브젝트는 플레이어가 아래공격 시 패링을 할 수 있도록 구현

 

 

☞압정

- 압정

- 압정은 오브젝트충돌로 한것이 아니라 타일에 옵션값을 설정하여 플레이어가 해당 타일에 충돌 시 피해를 입도록했다. 

- 원래 타일 충돌체크는 플레이어 좌우위아래로 하였지만 해당 압정 타일은 플레이어 아래+현재위치타일로만 충돌처리 체크를 하였다. 

 

 

 

 부서지는 타일

 

- 일반적으로 플레이어가 지나갈 수 없도록 해당 타일에 별도의 옵션값을 설정

- 플레이어가 공격 모션을 취하고 타일에 충돌 시 타일이 부서지는 이펙트가 출력되면서 지나갈 수 있도록 설정

   > 타일을 없앤것이 아니라 drawid와 옵션값을 변경하였는데 생각해보면... 예외처리할때 drawid 0 이면 충돌체크하지말라고 해둬서 굳이 옵션값을 변경안해줘도 된닷!

 

 

 투석기

(용량제한으로 화질을 낮췄다..ㅠㅠ)

- 투석기를 타면 플레이어가 빠르게 튀면서 마을 끝까지 이동할 수 있다. 

- 투석기 위치에 타일옵션값을 주어 해당 타일충돌로 플레이어를 날려버렸다. 

- 플레이어가 날아가는 모습을 좀 더 생동감있게 주기위해서 플레이어 모션을 변경 및 통통튀는것을 점점 줄였다. 

 

NPC 대사

- NPC에게 가서 말을걸면 NPC의 모션이 변경되고 상단에 해당 NPC의 허드가 출력된다. 

- NPC에게 충돌체크할 렉트를 설정해줘서 플레이어와 충돌 시 스크립트가 출력되게 했는데 이때, 바로 출력되게 하지않고 NPC와 충돌하고 플레이어가 위방향키를 눌렀을때만 대사가 출력되게 하였다.

그래서 NPC를 그냥 지나쳐도 NPC의 대사가 출력되지 않는다.

 

 

 미니게임

- 물병

> 랜덤값을 설정하여 랜덤한 x축 위치에 생성되도록 설정했다.

> 생성 시 N초간 머무르면서 N초가 끝난 후 속도의 영향을 받아서 점점 빠르게 아래로 떨어진다. 

> 플레이어가 위치한 x축과 방향에 따라서 좌 우 방향으로 날아간다.

> 게임 플레이 시간은 해당 물병 생성갯수에로 조절하였다. 

 

- 히트 판정

> 히트박스 와 물병 충돌체크를 하면 간단하지만 잘못 랜덤한 위치에 생성되어 떨어질때도 생각을 하면 간단하게 충돌체크하면 안됐다. 

> 그래서 나는 플레이어가 물병을 패링? 치는 순간에 bool값을 설정해서 물병이 해당 bool값이 true일때 히트 박스와 충돌 시 득점(골드점수)하도록 구현했다. 

 

 

중간보스 공격 패턴

 

- 중간보스 공격패턴은 물병을 던지는데 이때 물병이 날아갈때 스피드를 랜덤으로 줘서  일정하지않게 플레이어가 공격을 쉽게 피하지못하도록 구현 

 

전환 효과 

 

- 이미지를 사용하지않고 코드로만 위 씬전환을 구현

- 라인을 이용해서 라인의 두께를 조절하여 마치 전환되는 효과를 주었다. 

 

☞잔상 

 

 

- 몬스터 패턴 중 잔상을 남기면서 플레이어를 혼란에 빠지게 하는 패턴을 구현

> 잔상 객체를 따로 만들어서 해당 패턴 시 생성되게 하였다. 

> 잔상이미지를 알파값을 조절하지않고 두개의 이미지를 번갈아 가면서 출력시켰다. 

 

 

 

 

처음 구현해보는것들을 정리해보았는데 위에 정리한 기능보다 더 많이 게임에는 구현해두었으니 아래영상 참고 부탁!

 

영상은....업로더중.....잠만 기다려주세염ㅁ

728x90