Example #1
0
        public override void RankingUpdate()
        {
            // enemysにエネミーのデータを入れる
            List <Vector2> scale = new List <Vector2>();

            // エネミー一体一体の大きさを個別に保存
            foreach (var enemy in GameObjectManager.FindAll(CharacterID.Enemy))
            {
                scale.Add(enemy.transform.Scale);
            }

            // スケールでソート
            var scaleVar = scale.OrderByDescending(s => s.X).ToList();

            // Rankingの初期値はエネミーの数
            playerRank = scaleVar.Count;

            // プレイヤーのランクを決定
            for (int enemyNumber = 0; enemyNumber < scaleVar.Count; enemyNumber++)
            {
                // プレイヤー全体の大きさが今調べているエネミーの大きさよりも大きかったら
                if ((CompVector2.SumScale(CharacterID.Player).X > scaleVar[enemyNumber].X))
                {
                    // 現在調べているエネミーのナンバーをプレイヤーに入れる
                    playerRank = enemyNumber;

                    // それ以降は処理しない
                    break;
                }
            }
        }
Example #2
0
        /// <summary>
        /// 餌を定期的に追加
        /// </summary>
        /// <returns></returns>
        ///
        //private void RunTask()
        //{
        //    TaskFactory taskFactory = new TaskFactory();
        //    CancellationTokenSource tokenSource = new CancellationTokenSource();

        //    Task task = taskFactory.StartNew(() =>
        //    {
        //        while (true)
        //        {
        //            // キャンセル要求が来ていたらOperationCanceledException例外をスロー
        //            tokenSource.Token.ThrowIfCancellationRequested();

        //            GameObjectManager.Add(new Food(gameManager));

        //            Task.Delay(500);
        //        }
        //    }, tokenSource.Token);

        //    if (sceneEndCheck)
        //    {
        //        try
        //        {
        //            // キャンセル要求出す
        //            tokenSource.Cancel();

        //            // タスクがキャンセルされるまで待機
        //            task.Wait();
        //        }
        //        catch (AggregateException)
        //        {
        //            // タスクがキャンセルされるとここが実行される
        //        }
        //    }
        //}

        // 更新
        public override void Update(GameTime gameTime)
        {
            CameraGroup();

            // 敵を定期的に追加する処理を実行
            EnemyAdd(gameTime);
            // 餌を定期的に追加する処理を実行
            FoodAdd(gameTime);

            PlayerNullCheck();

            Console.WriteLine(CompVector2.SumScale(CharacterID.Player));
        }
Example #3
0
        /*////////////////////////////////////////////
        *
        *
        * ここから下はUpdataに書いた処理が書かれてます
        *
        *
        *  /* /////////////////////////////////////////*/

        /// <summary>
        /// カメラのズームと動き
        /// </summary>
        private void CameraGroup()
        {
            // カメラの初期値
            Camera.Position = Screen.HalfScreen;

            if (CompVector2.SumScale(CharacterID.Player).X <= 17.0f)
            {
                if (!input.IsKeyPush(Keys.Space))
                {
                    // 初期カメラズーム値 / キャラクターのScaleの合計でカメラのズームを決める
                    Camera.Zoom = new Vector2(4f) / CompVector2.SumScale(CharacterID.Player);
                }
            }
            else
            {
                Camera.Zoom = new Vector2(0.23f);
            }

            // カメラを移動させる
            camera.MoveVector2(-(Screen.HalfScreen - CompVector2.ObjectsCenterPos(CharacterID.Player)));
        }