1인 개발/PushAndSlash

푸쉬앤슬래시 개인 프로젝트 16일차

잼잼재미 2024. 5. 28. 02:43

구현 내용


1. 10회 뽑기 구현


 

  • 뽑기 버튼과 확인 버튼에 각각 매개변수 적용해서 각각 3개의 함수 작성
  • 10회 뽑기 시, 확인 버튼을 누르면 뽑기를 한번 더 진행하도록 구현
  • Normal, Rare, Unique 뽑기 구현

 

 

트러블 슈팅


1.  버튼의 매개변수 사용


 

위와 같이 3종류의 뽑기 상자를 각각 1회 뽑기, 10회 뽑기를 구현하려면 6개의 버튼이 필요하다. 코드의 중복을 줄이고 기존 구현했던 코드를 재사용하기 위해 매개변수를 활용했다.

 

 

public void HeroPaneActive(int num, int type, int price)
{
	// 코드
}

 

 

하지만 코드 작성 후, 버튼에서 해당 함수를 찾을 수 없었다. 검색을 해보니, 버튼이 매개변수는 1개까지만 사용이 가능했다. 그래서 1개의 매개변수만 사용하고 최대한 코드의 중복을 줄였다.

 

 

public void DrawNormalCharacterButton(int num)
{
    if(num == 1)
    {
        if (_gameData.Coin < 200)
        {
            
        }
        else
        {
            // 뽑기 확률 설정
            DrawCharacter(70, 25, 4, 1);

            HeroPanelSetting();
            HeroDrawOKButtonSetting(1);

            _heroPanel.SetActive(true);
        }
    }
    else if (num == 10)
    {
        if(_drawCount == 0)
        {
            if (_gameData.Coin < 1800)
            {
                
            }
            else
            {
                // 뽑기 확률 설정
                DrawCharacter(70, 25, 4, 1);

                HeroPanelSetting();
                HeroDrawOKButtonSetting(2);

                _heroPanel.SetActive(true);
            }
        }
        else
        {
            // 뽑기 확률 설정
            DrawCharacter(70, 25, 4, 1);

            HeroPanelSetting();
            HeroDrawOKButtonSetting(2);

            _heroPanel.SetActive(true);
        }
    }
}

public void DrawNormalCharacterOKButton(int num)
{
    if(num == 1)
    {
        _heroPanel.SetActive(false);
    }
    else if(num == 10)
    {
        _drawCount++;

        if (_drawCount >= 10)
        {
            _drawCount = 0;
            _heroPanel.SetActive(false);
        }
        else
        {
            _heroPanel.SetActive(false);
            DrawNormalCharacterButton(10);
        }
    }
}

 

뽑기 횟수를 나타내는 하나의 int 매개변수만 사용했다. 그래서 매개변수의 값이 1일 경우와, 10일 경우로 나눠서 코드를 작성했다. 10회 뽑기의 경우, 버튼을 누르면 한번 더 뽑기를 진행하도록 구현했다.

 

 

회고


오늘은 로비씬에 있는 멀티 플레이 관련을 제외하고 모든 UI를 완성했다. 캐릭터 10회 뽑기 시, 다른 게임 처럼 하나의 창에 10개의 각각 다른 캐릭터가 띄어지도록 구현하려고 했으나, 상당히 반복적인 작업이 될 것 같아서 위 처럼 클릭 할 때 마다, 캐릭터를 하나씩 뽑는 방법으로 구현했다. 이제는 전투씬에 완성하지 못한 UI 작업을 마무리하고, 캐릭터 밸런스 조절과 적 밸런스 조절만 하면 싱글 모드는 모두 완성이다. 작업을 마무리하고 이제 가장 어려운 멀티 플레이 관련 작업을 시작하도록 하겠다!