示例#1
0
        // StageControl.Awake
        static int GetMapConfigId(SceneLevel level, int mapId)
        {
            var mapConfigSceneID = mapId;

            switch (level)
            {
            case SceneLevel.stage1:
                mapConfigSceneID = mapConfigSceneID;
                break;

            case SceneLevel.stage2:
                mapConfigSceneID += 85;
                break;

            case SceneLevel.stage3:
                mapConfigSceneID += 241;
                break;

            case SceneLevel.stage4:
                mapConfigSceneID += 261;
                break;

            case SceneLevel.stage5:
                mapConfigSceneID += 285;
                break;

            case SceneLevel.stage6:
                mapConfigSceneID += 306;
                break;
            }

            return(mapConfigSceneID);
        }
示例#2
0
        static int GetSceneBuildIndex(SceneLevel leve, int mapId)
        {
            var sceneBuildIndex = mapId;

            switch (leve)
            {
            case SceneLevel.stage1:
                sceneBuildIndex += 8;
                break;

            case SceneLevel.stage2:
                sceneBuildIndex += 93;
                break;

            case SceneLevel.stage3:
                sceneBuildIndex += 249;
                break;

            case SceneLevel.stage4:
                sceneBuildIndex += 269;
                break;

            case SceneLevel.stage5:
                sceneBuildIndex += 293;
                break;

            case SceneLevel.stage6:
                sceneBuildIndex += 314;
                break;
            }

            return(sceneBuildIndex);
        }
    IEnumerator CaptureIt()
    {
        // Wait till the last possible moment before screen rendering to hide the UI
        yield return(null);

        GameObject.Find("MyCanvas").GetComponent <Canvas>().enabled = false;
        //input field token
        UserID_Token username = new UserID_Token();
        string       uid      = username.GetuserName();

        string timeStamp = System.DateTime.Now.ToString("dd-MM-yyyy-HH-mm-ss");
        //string fileName = uid + timeStamp + ".png";
        string fileName = "Default.png";
        string Name     = fileName;

        yield return(new WaitForEndOfFrame());

        ScreenCapture.CaptureScreenshot("Initial/" + Name);
        GameObject.Find("MyCanvas").GetComponent <Canvas>().enabled = true;
        Shot_taken = true;
        if (Shot_taken == true)
        {
            SceneLevel ScNo    = new SceneLevel();
            int        SceneNo = ScNo.GetSceneNumber();
            SceneManager.LoadScene(5);
            SceneNo = 5;
        }
    }
示例#4
0
    public void Move()
    {
        //timestamp and user id token call by get method
        string       timeStamp = System.DateTime.Now.ToString("dd-MM-yyyy-HH-mm-ss");
        UserID_Token username  = new UserID_Token();
        string       uid       = username.GetuserName();

        //Toggle value listner
        Debug.Log(EM);
        Debug.Log(FB);

        DirectoryInfo sourceInfo = new DirectoryInfo(Application.persistentDataPath + "/Initial");
        DirectoryInfo destInfo   = new DirectoryInfo(Application.persistentDataPath + "/Success");

        if (!Directory.Exists(destInfo.FullName))
        {
            Directory.CreateDirectory(destInfo.FullName);
        }
        foreach (FileInfo fi in sourceInfo.GetFiles())
        {
            if (fi.Length != 0 && FB == true && EM == true)
            {
                fi.CopyTo(Path.Combine(destInfo.ToString(), uid + "___1___1___" + timeStamp + ".png"), true);
            }
            Succeed = true;

            if (fi.Length != 0 && FB == true && EM == false)
            {
                fi.CopyTo(Path.Combine(destInfo.ToString(), uid + "___1___0___" + timeStamp + ".png"), true);
                Succeed = true;
            }
            if (fi.Length != 0 && FB == false && EM == true)
            {
                fi.CopyTo(Path.Combine(destInfo.ToString(), uid + "___0___1___" + timeStamp + ".png"), true);
                Succeed = true;
            }
            if (fi.Length != 0 && FB == false && EM == false)
            {
                fi.CopyTo(Path.Combine(destInfo.ToString(), uid + "___0___0___" + timeStamp + ".png"), true);
                Succeed = true;
            }
        }
        if (Succeed == true)
        {
            FB = false;
            EM = false;

            DirectoryInfo directoryInfo = new DirectoryInfo(Application.persistentDataPath + "/Initial");
            foreach (FileInfo file in directoryInfo.GetFiles())
            {
                file.Delete();
                Debug.Log("Files deleted");
            }
            SceneLevel ScNo    = new SceneLevel();
            int        SceneNo = ScNo.GetSceneNumber();
            SceneManager.LoadScene(7);
            ScNo.SetSceneIndex(7);
        }
    }
示例#5
0
    // 监听场景变换
    public void SceneChange(SceneLevel level)
    {
        //Debug.Log("收到通知");
        sceneLevel = level;
        if (sceneLevel == SceneLevel.StartScene)
        {
            StartUI = GameObject.Find(StartUIName);
            // 为开始游戏按钮增加监听事件
            Button startButton = StartUI.transform.Find(StartUIStartButtonName).GetComponent <Button>();
            startButton.onClick.RemoveAllListeners();
            startButton.onClick.AddListener(GotoPlayGameScene);

            WaitText = StartUI.transform.Find(WaitTextName).gameObject;
            WaitText.SetActive(false);

            // 为退出游戏按钮增加监听事件
            Button endButton = StartUI.transform.Find(StartUIEndButtonName).GetComponent <Button>();
            endButton.onClick.RemoveAllListeners();
            endButton.onClick.AddListener(ExitGame);
        }
        else if (sceneLevel == SceneLevel.GameScene)
        {
            // 设置UI的显示或隐藏
            gameplayUI = GameObject.Find(GameplayUIName);
            ContinueUI = GameObject.Find(ContinueUIName);
            ContinueUI.SetActive(false);
            gameplayUI.SetActive(true);
            isMenuOn = false;
        }
        else if (sceneLevel == SceneLevel.EndScene)
        {
            // 显示鼠标
            Cursor.lockState = CursorLockMode.None;
            Cursor.visible   = true;

            EndGameUI = GameObject.Find(EndGameUIName);
            Button restartButton = EndGameUI.transform.Find(EndGameUIRestartButtonName).GetComponent <Button>();
            restartButton.onClick.RemoveAllListeners();
            restartButton.onClick.AddListener(GotoPlayGameScene);
            Button returnStartButton = EndGameUI.transform.Find(ContinueUIReturnStartName).GetComponent <Button>();
            returnStartButton.onClick.RemoveAllListeners();
            returnStartButton.onClick.AddListener(ReturnStartButtonClick);
            Text text = EndGameUI.transform.Find(EndGameUIEndTextName).GetComponent <Text>();
            if (Director.GetInstance().CurrentSceneController.isWin)
            {
                text.text = Win;
            }
            else
            {
                text.text = Lose;
            }

            WaitText = EndGameUI.transform.Find(WaitTextName).gameObject;
            WaitText.SetActive(false);
        }
    }
示例#6
0
        public IEnumerator SceneLoad(SceneLevel sceneLevel)
        {
            var scene = GetScene(sceneLevel.sceneObj);

            Debug.LogFormat("scene ={0}", scene.IsValid());
            if (scene.IsValid())
            {
            }
            else
            {
                if (_preScenes.Count > 0)
                {
                    SetActiveScene(mainScene);
                    var removeList = new List <SceneLevel>();
                    foreach (var one in _preScenes)
                    {
                        if (one.isDontDestroy)
                        {
                            continue;
                        }
                        if (one.parentLevelName == sceneLevel.parentLevelName)
                        {
                            continue;
                        }
                        scene = GetScene(one.sceneObj);
                        SceneManager.UnloadScene(scene);
                        removeList.Add(one);
                        yield return(null);
                    }
                    foreach (var one in removeList)
                    {
                        _preScenes.Remove(one);
                    }
                }



                yield return(SceneManager.LoadSceneAsync(sceneLevel.sceneObj.sceneName, LoadSceneMode.Additive));


                if (!sceneLevel.isDontDestroy)
                {
                    _preScenes.Add(sceneLevel);
                }

                if (sceneLevel.isActive)
                {
                    SetActiveScene(sceneLevel.sceneObj);
                }
            }
        }
示例#7
0
    IEnumerator RoutineBackToTheScene(SceneLevel scene, BGMSoundType music)
    {
        _fadeAnim.Play(_fadeOutHash);
        yield return(new WaitUntil(() => _fadeScreen.color.a == 1));

        LoadSceneByIndex(scene.SceneToIndex());
        while (CanvasManager.Instance.stackCount > scene.SceneToIndex() + 1)
        {
            CanvasManager.Instance.CloseCanvasUI();
        }
        AudioManager.Instance.UnPauseSound();
        AudioManager.Instance.PlayBGMSound(music);

        _fadeAnim.Play(_fadeInHash);
        yield return(new WaitUntil(() => _fadeScreen.color.a == 0));
    }
示例#8
0
    public override void Start(MonoBehaviour behaviour, Sequencer.StateInstance state)
    {
        SceneLevel sl = SceneLevel.instance;

        Player player = sl.player;

        Transform t = EntityManager.instance.Spawn(type, name, null, null, useFX);

        if (t != null)
        {
            Vector2 playerPos = player.planetAttach.planetPos;

            Vector2 pos = sl.planet.body.ConvertToWorldPos(new Vector2(playerPos.x + x, playerPos.y + y));

            t.position = new Vector3(pos.x, pos.y, t.position.z);
            t.GetComponentInChildren <PlanetAttachStatic>().RefreshPos();
        }
    }
示例#9
0
        public static int SceneToIndex(this SceneLevel scene)
        {
            switch (scene)
            {
            default:
                return(0);

            case SceneLevel.Intro:
                return(1);

            case SceneLevel.Lobby:
                return(2);

            case SceneLevel.Play:
                return(3);

            case SceneLevel.Score:
                return(4);
            }
        }
示例#10
0
    public void retakePhoto()
    {
        DirectoryInfo directoryInfo = new DirectoryInfo(Application.persistentDataPath + "/Initial");

        foreach (FileInfo file in directoryInfo.GetFiles())
        {
            file.Delete();
            Debug.Log("Files deleted");
            deleteflag = true;

            if (deleteflag == true)
            {
                SceneLevel ScNo    = new SceneLevel();
                int        SceneNo = ScNo.GetSceneNumber();
                SceneManager.LoadScene(3);
                SceneNo = 3;
            }
        }
        //foreach(DirectoryInfo dir in directoryInfo.GetDirectories()){
        //     directoryInfo.Delete();
        //}
    }
示例#11
0
 // Update is called once per frame
 void Update()
 {
     if (mPlayer == null)
     {
         SceneLevel sl = SceneLevel.instance;
         if (sl != null && sl.player != null)
         {
             mPlayer = sl.player.transform;
         }
     }
     else
     {
         if (isLockAngle)
         {
             Vector2 dir = (mPlayer.position - transform.position).normalized;
             Util.Vector2DDirCap(mUp, ref dir, lockAngle);
             transform.rotation = Quaternion.FromToRotation(transform.up, dir) * transform.rotation;
         }
         else
         {
             transform.up = (mPlayer.position - transform.position).normalized;
         }
     }
 }
示例#12
0
 public void BackToTheScene(SceneLevel scene, BGMSoundType music)
 {
     StartCoroutine(RoutineBackToTheScene(scene, music));
 }
示例#13
0
 public void LoadSceneByFade(SceneLevel scene, CanvasType canvasType, BGMSoundType musicType)
 {
     StartCoroutine(RoutineLoadScene(scene.SceneToIndex(), canvasType, musicType));
 }
示例#14
0
 //MonoGameManager relays the scene value that was loaded when it receives OnLevelWasLoaded
 public void OnLevelHasCompletedLoading(SceneLevel newScene) {
     if (newScene != SceneLevel.GameScene) {
         D.Error("A Scene change to {0} is currently not implemented.", newScene.GetValueName());
         return;
     }
     _eventMgr.Raise<SceneChangedEvent>(new SceneChangedEvent(this, newScene));
     if (LevelSerializer.IsDeserializing || !Settings.IsSavedGame) {
         GameState = GameState.Restoring;
     }
     else {
         ResetConditionsForGameStartup();
         _gameTime.PrepareToBeginNewGame();
         GameState = GameState.Waiting;
     }
 }
示例#15
0
 public void StartBasedOnStartScene(SceneLevel startScene) {
     switch (startScene) {
         case SceneLevel.LobbyScene:
             break;
         case SceneLevel.GameScene:
             __SimulateBuildGameFromLobby_Step2();
             break;
         default:
             throw new NotImplementedException(ErrorMessages.UnanticipatedSwitchValue.Inject(startScene));
     }
 }
示例#16
0
    // Update is called once per frame
    void LateUpdate()
    {
        switch (action)
        {
        case Entity.Action.idle:
        case Entity.Action.move:
            if (mPlayer == null)
            {
                SceneLevel sl = SceneLevel.instance;
                if (sl != null)
                {
                    mPlayer = sl.player;
                }
            }
            else
            {
                bool needHeal = PlayerNeedHeal();

                //follow player
                if (planetAttach.GetDistanceHorizontal(mPlayer.planetAttach) > mMinDist)
                {
                    Vector2 dir = planetAttach.GetDirTo(mPlayer.planetAttach, true);
                    planetAttach.accel = dir * acceleration;
                    action             = Entity.Action.move;
                }
                else if (planetAttach.velocity.x != 0)
                {
                    planetAttach.velocity = Vector2.zero;
                    planetAttach.accel    = Vector2.zero;
                    action = Entity.Action.idle;
                }

                //update heart
                switch (mCurHeartState)
                {
                case ItemHeart.State.Inactive:
                    if (needHeal)
                    {
                        mCurTime += Time.deltaTime;
                        if (mCurTime >= heartRegenDelay)
                        {
                            mHeart.Activate(true);
                        }

                        mMinDist = minPlayerNeedHeartDistance;
                    }
                    else
                    {
                        mMinDist = minPlayerDistance;
                    }
                    break;
                }

                if (needHeal)
                {
                    if (!heartGlow.gameObject.active)
                    {
                        heartGlow.gameObject.active = true;
                    }

                    mCurHeartGlowTime += Time.deltaTime;
                    float t = Mathf.Sin(Mathf.PI * mCurHeartGlowTime * heartGlowPulsePerSecond);
                    t *= t;
                    Color c = heartGlow.color; c.a = t;
                    heartGlow.color = c;
                }
                else if (heartGlow.gameObject.active)
                {
                    heartGlow.gameObject.active = false;
                }
            }
            break;
        }
    }
示例#17
0
 //only called by level scene
 public void SetCheckpoint(SceneLevel.LevelCheckpoint checkpoint)
 {
     mCheckPoint = checkpoint;
 }
示例#18
0
 /// <summary>
 /// 改变场景
 /// </summary>
 /// <param name="level">当前场景</param>
 public void SceneChangeNow(SceneLevel level)
 {
     _currentSceneLevel = level;
     // 发送场景改变通知
     SceneChange?.Invoke(level);
 }