示例#1
0
    public void PushSkillButton()
    {
        if (usingSkill) //필살기 사용 완료
        {
            GetComponent <Image>().sprite = skillButtonSprite[0];

            //panel_SuperPower.SetActive(true); //초능력 입력 패널 활성화

            if (playerImageController.getPlayingChr() == 0)                              //염동력자가 필살기를 사용 완료했을 때
            {
                if (bottleSelectController.bottleSkillOperation.getUsingSkillNum() != 0) //필살기를 적용한 물병이 존재하는 경우
                {
                    playerImageController.ChangePlayerImageWithDelay(2, 0);              //딜레이 주고 던지는 자세로 교체
                    bottleSelectController.SetActiveBottleWithDelay(2);                  //딜레이 주고 물통 활성화
                    controllButtonsUIManager.setShowButtonsWithDelay(2, 1);              //스킬 버튼과 membrame 추가/제거 버튼을 제외하고 모든 컨트롤 버튼 활성화
                    psychokinesis.SkillActivate();
                    skillUsed = true;
                }
                else //필살기를 적용한 물병이 없을 경우
                {
                    playerImageController.ChangePlayerImage(0); //던지는 자세로 교체
                    bottleSelectController.bottle.SetActive(true);    //물통 활성화
                    controllButtonsUIManager.setShowButtons(true, 1); //스킬 버튼과 membrame 추가/제거 버튼을 제외하고 모든 컨트롤 버튼 활성화
                }
            }
            else if (playerImageController.getPlayingChr() == 1)  //탄성막 생성자가 필살기를 사용 완료했을 때
            {
                playerImageController.ChangePlayerImage(0);       //던지는 자세로 교체
                bottleSelectController.bottle.SetActive(true);    //물통 활성화
                padDirection.setDirection(previousDirection);     //조이스틱 방향을 원래 방향으로 갱신
                controllButtonsUIManager.setShowButtons(true, 2); // 탄성막 추가 버튼을 숨기고 모든 컨트롤 버튼을 보여줌
                trajectory.SetActive(true);                       //포물선 활성화
                MembraneUsingSkillEffect.selectedMembrane = null; //탄성막 선택 초기화
                for (int i = 0; i < membranes.transform.childCount; i++)
                {
                    membranes.transform.GetChild(i).GetComponent <MembraneUsingSkillEffect>().setStartDelta(true); //탄성막 파괴 카운트다운 시작
                    membranes.transform.GetChild(i).GetComponent <MembraneUsingSkillEffect>().Activate();          //콜라이더 활성화
                }

                if (membranes.transform.childCount > 0)
                {
                    skillUsed = true;
                }
            }
            else //빙결자가 필살기를 사용 완료했을 때
            {
                if (bottleSelectController.bottleSkillOperation.getUsingSkillNum() != 0) //필살기를 젹용하는 물병이 존재하는 경우
                {
                    playerImageController.ChangePlayerImageWithDelay(1, 0); //딜레이 주고 던지는 자세로 교체
                    bottleSelectController.SetActiveBottleWithDelay(1);     //물통 활성화
                    controllButtonsUIManager.setShowButtonsWithDelay(1, 1); //스킬 버튼과 membrame 추가/제거 버튼을 제외하고 모든 컨트롤 버튼 활성화
                    freezer.SkillActivate();
                    skillUsed = true;
                }
                else
                {
                    playerImageController.ChangePlayerImage(0);       //던지는 자세로 교체
                    bottleSelectController.bottle.SetActive(true);    //물통 활성화
                    controllButtonsUIManager.setShowButtons(true, 1); //스킬 버튼과 membrame 추가/제거 버튼을 제외하고 모든 컨트롤 버튼 활성화
                }
            }

            if (skillUsed)                                    //유의미하게 스킬을 사용했을 때
            {
                tensionGaugeManager.DecreaseTensionGauge(50); //텐션게이지 감소
                skillUsed = false;
            }
            bottleSelectController.bottleSkillOperation.setUsingSkillNum(0);
            usingSkill = false;
        }
        else // 필살기 사용 시작
        {
            GetComponent <Image>().sprite = skillButtonSprite[1]; //버튼 이미지 교체

            playerImageController.ChangePlayerImage(2);           //플레이어 초능력 사용 자세로 교체

            bottleSelectController.bottle.SetActive(false);       //물통 비활성화

            if (playerImageController.getPlayingChr() == 1)       //탄성막 생성자가 필살기를 사용했을 때
            {
                previousDirection = padDirection.getDirection();  //스킬버튼을 누르기 전의 방향 저장
                controllButtonsUIManager.setHideButtons(true, 2); //탄성막 추가 버튼 보이고 조이스틱을 제외한 컨트롤 버튼 숨김
                trajectory.SetActive(false);                      //포물선 비활성화
            }
            else //염동력자, 빙결자가 필살기를 사용했을 때
            {
                controllButtonsUIManager.setHideButtons(true, 1); //스킬 버튼을 제외하고 모든 컨트롤 버튼 숨김
            }

            usingSkill = true;
        }
    }
示例#2
0
    // Update is called once per frame
    void Update()
    {
        switch (playerImageController.getPlayingChr())
        {
        case 0:
            if (shadowEffect.enabled)
            {
                if (blurTime < 10)
                {
                    blurTime          += 20 * Time.deltaTime;
                    blurEffect.samples = (int)blurTime;
                }
                blurEffect.blurCenterPos = new Vector2(0.5f + 0.5f * bottleSelectController.bottle.transform.position.x / (width / 2.0f),
                                                       0.5f + 0.5f * bottleSelectController.bottle.transform.position.y / (height / 2.0f));
            }
            else if (blurTime > 1)
            {
                blurTime -= 20.0f * Time.deltaTime;
                if (blurTime > 1)
                {
                    blurEffect.samples = (int)blurTime;
                }
                else
                {
                    blurTime = 1;
                }
            }
            break;

        case 1:
            switch (screenEffectNum)
            {
            case 1:
                break;

            case 2:           // 화면 효과 1단계 = 화면 줌
                if (blurTime > 10)
                {
                    screenEffectNum = 3;
                }
                blurTime          += 50 * Time.deltaTime;
                blurEffect.samples = (int)blurTime;
                Camera.allCameras[0].orthographicSize -= 2 * Time.deltaTime;
                Camera.allCameras[1].orthographicSize -= 2 * Time.deltaTime;
                break;

            case 3:         // 화면효과 2단계 = 화면 정상화
                blurTime -= 50 * Time.deltaTime;
                if (blurTime < 1)
                {
                    screenEffectNum     = 1;
                    blurTime            = 1;
                    blurEffect.blurSize = 10;
                    Camera.allCameras[0].orthographicSize = height / 2;
                    Camera.allCameras[1].orthographicSize = height / 2;
                }
                else
                {
                    blurEffect.samples = (int)blurTime;
                    Camera.allCameras[0].orthographicSize += 2 * Time.deltaTime;
                    Camera.allCameras[1].orthographicSize += 2 * Time.deltaTime;
                }
                break;
            }
            break;

        case 2:
            break;
        }

        if (screenEffectNum == 0) //염력 사용 중일 때만 실행
        {
            psychoTime -= Time.deltaTime;
            if (psychoTime < 0) //지정된 염력 사용 시간이 지나면 염력 사용 종료
            {
                Time.timeScale       = 1;
                Time.fixedDeltaTime  = 0.02f * Time.timeScale;
                shadowEffect.enabled = false;
                screenEffectNum      = 1;
                psychoTime           = 0.4f;
                usefullOperation.FadeOut(1, redAura.GetComponent <SpriteRenderer>());
                psychokinesis.psychoAvailable = false;
                playerImageController.ChangePlayerImageWithDelay(0.25f, 0); //물병이 땅에 떨어지기 전에 초능력 사용이 끝나면 딜레이를 주고, 물병을 던지기 전의 이미지로 변경
            }
        }
    }