2018년 10월 30일 화요일

[20181030] 구상 : Theme

각 공간에 Theme 를 적용함으로서 얻고자 하는 최종적인 모습중의 하나는 아래의 이미지와 같다.


이 Theme는 2가지를 필요로 한다.
  1. 특정 Object 가 배치될 장소.
  2. Object를 돋보이게 해줄 Tile.



+ Object 배치 장소의 경우.

Object는 특정 좌표를 점유할 수 있고 이는 곳 길을 막을 가능성이 있다는 것이다.
상자 같은 경우에는 열면 사라지기 때문에 상호작용을 통해서 길을 열 수 있지만, Theme 적용으로 배치될 Object 중에는 제거가 불가능한 녀석들도 포함되어 있다.


그리하여 요구되는 기능이란...
"Static 하게 길을 막을 가능성이 있는 Object" 가 "배치될 수 없는 좌표" 를 추려내는 것
...이다.

현재 공간은...
  1. "방 공간"
  2. "길 공간"
...두가지로 구분된다.

Theme 는 "방 공간" 에만 적용되는데, "방 공간" 은 내부가 직사각형 모양으로 비어있기 때문에 내부에 "길" 을 만들 필요가 없었다.
이제 "방 공간" 에 위에 언급한 "Static 하게 길을 막을 가능성" 이 생겨났기 때문에 길 데이터를 수집하고, 이 것을 Negative List 로서 활용할 것이다.


길을 생성하는 코드는 두가지가 있는데.
  1. 방 내부의 문과 문 사이를 연결한다.
  2. 방과 방 사이의 문을 연결한다.
이 경우에는 1번에 해당하는 기능을 활용할 수 있다.



+ Object 를 돋보이게 해줄 Tile의 경우

현재 Theme System은 각 "공간" 단위로 작동하고 지정된 Theme Tile 을 공간에 덮에 씌우는 형태이다.

위의 이미지에서 보여지는 것처럼 보물상자를 시각적으로 주목하게 하기 위한 기능은 "방 단위" 의 Theme System 에서는 지원할 수 없다.
"특정 좌표의 주변 Tile 을 재조정 하는 기능"
...이 필요하다.

Tile 재조정을 위한 Pivot 의 선택을...
  • Map의 Data 를 생성하는 시점에서 할 것인지.
  • Object를 배치하는 시점에서 할 것인지.
...를 선택할 필요가 있다.

Data 생성 시점에서 한다면 해당 기능을 Theme Tile System 에 통합 할 수도 있다.
Object 배치 시점에 한다면 코드 자체는 비효율적이지만 빠른 작업이 가능하다.



그러하다.
정리 다 했으니까 이제 작업하자.
( '_')y-~

> 관련 코드의 지식이 Reset 된 관계로
> 복기 차원에서 작성

댓글 없음:

댓글 쓰기