Exemple #1
0
        public void Update(GameTime gameTime)
        {
            playTime++;
            //inputState.Update();
            //死んでいないと更新する
            if (!isClear && !isOver)
            {
                for (int i = 0; i < map.MapThings.Count; i++)
                {
                    map.MapThings[i].Update(gameTime);
                }

                //プレイヤーの更新
                player.Update(gameTime);

                //火の更新
                for (int i = fires.Count - 1; i >= 0; i--)
                {
                    fires[i].Update(gameTime);
                }

                //死んだ火を消す
                fires.RemoveAll(x => x.IsDead); // && x.IsOnGround

                //水の更新
                foreach (var w in waterLines)
                {
                    w.Update(gameTime);
                }

                waterLines.RemoveAll(x => x.IsDead);

                //マップの更新
                map.Update(gameTime);

                //カメラの注視位置を更新
                //camera.SetAimPosition(player.Position + new Vector2(player.ImageSize.Width / 2, player.ImageSize.Height / 2));
                camera.MoveAimPosition(player.Position + new Vector2(player.Width / 2, player.Height / 2));
                //Console.WriteLine(camera.OffSet);
                //マップ上にある炭の数を取得
                nowCoals = map.MapThings.FindAll(x => x is Coal);


                //マップの更新
                map.Update(gameTime);

                if (map.GetGoal() != null)
                {
                    if (map.GetGoal().IsOnFire)
                    {
                        //柏
                        stageSever.ClearStage   = mapIndex;
                        stageSever.PlayTime     = playTime / 60;
                        stageSever.CurrentStage = mapIndex;
                        stageSever.Charcoal     = coals.Count - nowCoals.Count;
                        stageSever.SaveStageData();

                        isClear             = true;
                        clearSelect.IsClear = true;
                    }
                }

                //葉梨竜太
                if (player.IsDead)
                {
                    isOver = true;
                    //isClear = true;
                    //clearSelect.IsClear = true;
                }
            }
            // ClearWindow2が出るように変更(KeyもQに変更) By佐瀬拓海
            if (gameDevice.GetInputState().CheckTriggerKey(Keys.Q, Parameter.MenuButton))
            {
                if (isOver == false)
                {
                    isOver        = true;
                    player.IsDead = true;
                }
                else if (isOver == true)
                {
                    isOver        = false;
                    player.IsDead = false;
                }
            }

            clearSelect.Update();
            isEnd = clearSelect.IsEnd;  //clear窓口からend状態をとる
            if (isOver)                 //SceneのisOverで判断する
            {
                if (clearSelect.IsClear == true)
                {
                    return;
                }
                clearSelect.Initialize();
                clearSelect.IsClear = true;
            }
            else if (isOver == false && isClear == false)   //isOver = falseでゲーム画面に戻れる By佐瀬拓海
            {
                clearSelect.Initialize();
                clearSelect.IsClear = false;
            }
        }