Ejemplo n.º 1
0
        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            if (IsPlayer == true)
            {
                camera.update(player.playerPosition);
            }
            foreach (GameObject go in gameObjects)
            {
                player.Health = healthHold;
                go.Update(gameTime);

                go.GetPlayerPosition(player.playerPosition);

                go.GetSightePosition(player.Sightpostotion);

                if (player.playerPosition.Y < -2400 && level1 == true)
                {
                    level1          = false;
                    levels          = 2;
                    cutScenemanager = 1;
                }

                if (player.playerPosition.Y < -2370 && player.playerPosition.Y > -2400 &&
                    player.playerPosition.X > 1200 && player.playerPosition.X < 1300 && level3 == true)
                {
                    level3          = false;
                    levels          = 4;
                    cutScenemanager = 1;
                }

                if (player.playerPosition.Y < -1500 && level4 == true)
                {
                    level.GameEnding();

                    level4 = false;
                }

                // check for colisions
                foreach (GameObject other in gameObjects)
                {
                    if (go != other && go.IsColliding(other))
                    {
                        go.DoCollision(other);
                    }
                }
            }// update gameobejts


            level.addNextRooom();

            foreach (GameObject go in solidObejts)
            {
                foreach (GameObject other in solidObejts)
                {
                    if (go != other && go.IsColliding(other))
                    {
                        go.DoCollision(other);
                    }
                }
            }
            timer += gameTime.ElapsedGameTime.TotalSeconds;

            foreach (GameObject go in toBeRemoved)
            {
                gameObjects.Remove(go);
            }/// remove gameobejts
            toBeRemoved.Clear();
            Effects.AddRange(toBeAddedEffect);
            toBeAddedEffect.Clear();
            gameObjects.AddRange(toBeAdded);
            toBeAdded.Clear();
        }