본문 바로가기

Game Make

Block Puzzle 만들기 (3)

기본적인 기능을 어제부로 완성했다. 

이제 부가적인 기능들을 채워 넣어야 한다.

 

가장 처음에 만들 것은 조각을 드래그할때, 놓을 공간이 있는지 없는지 쉽게 알수 있도록 하는 것이다.

조각을 채워넣지 못하는 상태라면 붉은색 음영으로 쉽게 알수 있도록 하자.

된다...

된다... 되긴 됐는데... 어째 잘 안보이는데?

조각 UI에 가려서 조금 갑갑한 느낌이 든다.  

이럴 때는 생각할 필요없이 보강 작업에 들어가는 것이 좋다.

새로 작업해 보자.

이번에는 조각 UI 자체의 색을 바꾸는 방법으로 진행하겠다.

훨씬 잘보인다.

오케이!

아까에 비해서 훨씬 잘 보이게 되었다. 이대로 진행해도 될 것 같다.

 

다음에 넣을 기능은 제거가능한 블록들을 미리 보여주는 기능이다.

이번에도 쭉 진행해 본다.

오!

중간에 좀 시간이 걸렸지만, 어떻게든 완료했다. 

원래 코딩을 짤때는 좀더 체계적인 데이터구조를 만드는데 골몰하는 편인데, 이번에는 그냥 되는데로 짜넣었다.

지금은 코드가 무슨 뜻으로 그렇게 쓰여진 것인지 알 수 있다...

하지만 한 달이 지나면, 오직 신만이 해석할 수 있는 코드가 되겠지?

그 부분이 걱정되기는 하지만, 일단 계속 진행하자.

(테스트를 해보니 나오는 조각들을 좀 쉽게 해주어야 할 것 같은 느낌이 든다.)

 

다음은 클리어된 조각들이 파티클과 함께 사라지는 모습을 연출해 본다. 

(참고로 가장 재미있는 파트)

파티클을 만들자.

먼저 파티클을 제작했다.

이 파티클이 블럭이 제거될 때마다 튀어나오도록 하면 된다.

설정

Simulation SpaceWorld로 조정하고, Play On Awake는 꺼둔다.

왜냐하면 파티클을 움직여가면서 내가 원하는 장소, 순간에만 입자들을 뿌려줄 것이기 때문이다.

Local로 설정하면 얘를 움직일 때마다 입자들이 따라 오기 때문에 꼭 World로 조정해 주어야한다.

public void PopClearEffect(int[] clearState)
{
    for (int i = 0; i < Constants.TableSize; i++)
        for (int j = 0; j < Constants.TableSize; j++)
        {
            int index = i * Constants.TableSize + j;
            if (clearState[index] == Constants.ClearCode)
            {
                _particle.transform.position = _blocks[index].position;
                _particle.Emit(1);
            }
        }
}

후후

좋다!

 

좋은데 뭔가 밋밋하네...

파티클을 좀더 다듬어 보자..

조금 나아졌다.

아까보단 조금 나아진 것 같다.

아직 해야할 일이 많지만 오늘은 여기서 마무리 지어볼까?

하루하루 쏟는 시간이 많지는 않지만 점점 개선되어가는 모습을 보니 흐믓하다.

'Game Make' 카테고리의 다른 글

Block Puzzle 만들기 (6)  (0) 2023.10.14
Block Puzzle 만들기 (5)  (0) 2023.10.11
Block Puzzle 만들기 (4)  (0) 2023.10.08
Block Puzzle 만들기 (2)  (0) 2023.10.06
Block Puzzle 만들기  (0) 2023.10.05