주녘공부일지

[퍼즐 게임] 게임 플레이 영상, 매칭 이벤트 본문

GameDevelopment/[Unity] Project

[퍼즐 게임] 게임 플레이 영상, 매칭 이벤트

주녘 2023. 9. 29. 15:57

퍼즐 게임 

- 인접한 블럭을 하나 교체하여 블럭을 매칭시켜 클리어 조건을 달성하는 방식

 -> 영상의 스테이지 클리어 조건은 특수 블럭을 모두 매칭시켜 파괴하는 것

 

- 매칭 조건 : 직선 3개 이상, 4개 이상의 블럭이 모일 경우

- 매칭 시 파괴 이펙트, 등은 이미지 짜집기로 제작

 

- 특수 블럭 (클리어 조건) 인접한 블록의 아이템이 매칭되었을 때 이벤트가 발생되는 블럭

 -> 0회 : 일반 블럭과 같이 멈춰있는 이미지 상태

 -> 1회 : 애니메이션이 재생됨

 -> 2회 : 매칭 효과 발생 ( 클리어 카운트 감소 )

  + 특수 블럭의 매칭 발생 시 블럭들의 이벤트가 끝나고 게임 클리어 여부를 판단

블록 매칭 이벤트 실행 순서

    // 블록 매칭 이벤트가 발생했을 경우 호출되는 코루틴
    private IEnumerator IMatchingEventExecuter()
    {
        IsMatchingEventState = true;
        
        // 아이템 이동속도는 2초 동안 서서히 증가
        itemSpeedUpCoroutine = CoroutineHelper.StartCoroutine(IItemSpeedUp(2f));
        
        // 아이템의 특수 이벤트가 있다면, 끝날때까지 대기
        yield return new WaitUntil(() => IsItemEventCheck() == false);
        
        // 매칭 이벤트 발생
        blockNodeGroup.MatchingEvent(MatchingBlockIndexSet.ToArray());
        MatchingBlockIndexSet.Clear();

        // 아이템 소환 감지
        itemManagement.ItemSummon(blockItemSummomCount);
        blockItemSummomCount = 0;
        
        // 매칭 이벤트가 끝났는지 여부를 판단
        yield return new WaitUntil(() => IsMatchingEvent() == true);

        // 매칭 이벤트가 끝남
        IsMatchingEventState = false;
        matchingEventCoroutine = null;

        // 연속매칭 체크
        bool isMatching = blockNodeGroup.MatchingCheckAll();

        // 클리어 체크
        if(!isMatching)
        {
            moveCount--;
            gameCanvas.UpdateMoveCount(moveCount);

            if (moveCount == 0)
                EndGame();
        }
    }

 

게임 플레이 영상

게임 플레이 영상

 

 

.