コード例 #1
0
        private void GenerateRandomGameObject()
        {
            var number   = rand.Next(100);
            var y        = rand.Next((int)(FieldHeight - 1 - FieldHeight * 0.16));
            var velocity = GetVelocityInPixelsPerSecond();

            if (GameObjects.Count < 3)
            {
                if (number < 15)
                {
                    GameObjects.Add(new BirthControl(y, velocity));
                }

                else if (number < 30)
                {
                    GameObjects.Add(new Blood(y, velocity));
                }

                else if (CanOtherSpermSpawn() && number < 45)
                {
                    GameObjects.Add(new OtherSperm(y, velocity));
                }

                else if (GameObjects.All(e => !(e is IntrauterineDevice)) && number < 60)
                {
                    GameObjects.Add(new IntrauterineDevice(velocity));
                }

                else if (number < 80)
                {
                    GameObjects.Add(new Dna(y, velocity, Sperm));
                }

                else if (number < 90 && ShieldMaxTimeInSeconds > 0 && !Sperm.IsShieldActivated)
                {
                    GameObjects.Add(new Shield(y, velocity));
                }

                else if (number < 100 && MagnetMaxTimeInSeconds > 0 && !Sperm.IsMagnetActivated)
                {
                    GameObjects.Add(new Magnet(y, velocity));
                }
            }
        }
コード例 #2
0
ファイル: Stage.cs プロジェクト: CarimA/RPG
        public void Update(GameTime gameTime)
        {
            foreach (var system in _globalUpdateSystems)
            {
                system.Method(gameTime, system.RequiredComponents.Length == 0
                    ? GameObjects
                    : GameObjects.All(system.RequiredComponents));
            }

            _debugTime -= gameTime.GetElapsedSeconds();
            if (_debugTime <= 0f)
            {
                _debugTime += 0.333f;
                foreach (var gameObject in GameObjects)
                {
                    _debugger.Post("gameobjects", gameObject);
                }
            }

            _currentScene?.Update(gameTime, GameObjects);
        }
コード例 #3
0
 private bool CanOtherSpermSpawn()
 {
     return(GameObjects
            .All(e => !(e is OtherSperm) && !(e is IntrauterineDevice)));
 }