2019년 6월 1일 토요일

[20190601] Throw #1

더운 계절이 왔습니다.
아직 불편한 정도는 아니지만 조만간 어딘가로 피신해야 할런지도 모르겠습니다.
작업이 가능한 커피숍을 찾아놔야겠네요.

몸은 어느정도 회복이 되어서, 어제는 "이제 좀 살만하네" 라고 생각했습니다.
하지만... 낮/밤이 완전히 바뀌어서 그닥 살만하지는 않네요.
( o_o)y-~



작업 이야기로 들어갑니다.

10일 만의 일지 입니다. 일지 간격이 좀 기네요.
잡설의 작성이 뜸해져서 더 긴 것으로 느껴지는군요.

이 일지는 5월 22일의 일부, 23일, 25일 ~ 29일, 31일 그리고 6월 1일 작업을 대상으로 합니다.

작업 내역은...
  • Item Throw를 위한 모든 것
...입니다.


몸이 엉망인 덕분에 작업 시간은 50시간 정도로 짧았지만 일은 많이( ? ) 진행되었습니다.
오늘 일지는 이 작업에서 중요했던 순간들을 몇 개 짚는 것으로 작성해보려 합니다.




1. 위치를 특정한다.

무언가를 던지려면 던질 위치를 특정할 필요가 있습니다.
그것에 최적화된 도구는 Mouse 입니다.

Mouse 위치를 활용할 수 있게 관련 기능을 손 봤습니다.


이렇게 Test Scene에서 확인이 가능하지요.



2. 선을 Grid로 변환 한다.

공간이 특정 크기로 규격화 되어 있는 게임이다보니 Ray 를 활용한 간편한 충돌대상감지는 Game에 맞지 않습니다.

그리하여 시작점과 끝점을 지정하면 그것을 Grid 공간의 경로로 변환하는 기능을 만들었습니다.


Twitter에 이 영상을 올렸더니 어느 외국인 친구가 뭐하는 게임인지 전혀 모르겠다고 하더군요. @_@



3. 유의미한 경로로 제한 한다.

Grid Data의 정보를 참고하여 경로가 벽을 뚫고 가지 못하도록 제한 하였습니다.


이정도면 발사체의 이동 경로로는 충분해 보입니다.



4. Inventory 와 연계하여 경로를 보여준다.

Test Scene에서 만든 기능을 Game에 얹었습니다.


경로용 Tile이 이상하죠?



5. Tile 을 넣어본다.

급하게 Tileset을 만들어서 적용 했습니다.


자리잡기 용도라서 특별한 것은 없습니다.
이거 작업하다가 Tile Build 관련 Bug를 하나 잡았습니다. ( ^_^)y-~



6. 발사체를 이동한다.

발사체 노드를 경로에 맞춰서 이동 시켜봤습니다.


여러 시행착오 끝에 마음에 드는 이동 속도를 찾았습니다.



7. 때린다.

무수한 Item 관련 Refactoring과 Data 재설계 끝에 지정한 장소에서 공격 판정을 만들어 냈습니다.
( '_')y-~


여기 까지 진행하면서 이전 일지에서 언급했던...

  • Item, 행동, 대상의 3가지 조합으로 Item활용을  처리 하는 것

...이 완전히 확립되었습니다.

Damage 가 정상표시 되지 않는 것은 Item과 Actor간의 공방 처리가 정규처리를 따르지 않고 별도의 처리 로직을 가지고 있기 때문입니다.

지난번에 관련 기능을 만들면서 Item 관련 기능은 손보지 않았는데요. 지금 저 녀석을 제대로된 처리 흐름안에 포함하기 위해 여러 부분을 갈아 엎는 중입니다.

일지는 여기 까지 입니다.




어제는 이 달 들어 처음으로 산책을 했습니다. 1.5km의 짧은 거리였지만 산을 오르내리는 거라서 나름 운동이 되었네요.

일지를 5월 31일에 작성하고 싶었는데 낮/밤이 뒤집히다보니 6월 1일에 와서야 작성했습니다.
지난 일지에서... "일지 간격이 10일 씩 되는 것은 좀 아니다 싶었습니다." ...라고 적었는데... 뭔가 스스로에게 면목이 없군요. @_@

다음 일지는 이른 시기에 작성해보겠습니다.

일교차가 좀 있는데 다들 감기 조심하시고 좋은 하루 되세요.
전 잠깐 쉬고 다시 일하러 갑니다.
( '_')y-~

댓글 없음:

댓글 쓰기