FlyingBird.PipeManager.Update C# (CSharp) Method

Update() public method

Updates the object.
public Update ( GameTime gameTime ) : void
gameTime Sharpex2D.GameTime The GameTime.
return void
        public void Update(GameTime gameTime)
        {
            _elapsed += gameTime.ElapsedGameTime;
            if (_elapsed >= 2800)
            {
                _elapsed = 0;
                var pipe = new Pipe(_random.Next(100, 300), 80);
                pipe.Position = new Vector2(650, 0);
                _pipes.Add(pipe);
            }

            var obsoletPipes = new List<Pipe>();

            foreach (Pipe pipe in _pipes)
            {
                if (pipe.Position.X > -60)
                {
                    pipe.Position = new Vector2(pipe.Position.X - 1.5f, pipe.Position.Y);
                    if (pipe.Position.X < 315 && !pipe.Scored)
                    {
                        pipe.Scored = true;
                        PassedPipes += 1;

                        if (ScoreChanged != null)
                        {
                            ScoreChanged(this, EventArgs.Empty);
                        }
                    }
                }
                else
                {
                    obsoletPipes.Add(pipe);
                }
            }

            lock (_lockObj)
            {
                //remove pipes
                foreach (Pipe pipe in obsoletPipes)
                {
                    _pipes.Remove(pipe);
                }
            }
        }

Usage Example

Exemplo n.º 1
0
 /// <summary>
 ///     Updates the Pipes.
 /// </summary>
 /// <param name="gameTime">The GameTime.</param>
 private void UpdatePipes(GameTime gameTime)
 {
     if (!_isDead)
     {
         _pipeManager.Update(gameTime);
     }
 }