Beispiel #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 (grietje.rectangle.Intersects(TestLevel.finish))
            {
                status = GameStatus.GameOver;
                MediaPlayer.Play(credits);
            }
            // Allows the game to exit
            KeyboardState kb = Keyboard.GetState();

            startscreen.Update(gameTime);
            if (status == GameStatus.StartScreen)
            {
                if (kb.IsKeyDown(Keys.Enter))
                {
                    status = GameStatus.Gameplay;

                    MediaPlayer.Play(bgm);
                }
            }

            if (status == GameStatus.GameOver)
            {
                if (kb.IsKeyDown(Keys.R))
                {
                    Restart();
                    TimeLapse = 0;
                    UpdateCam = true;
                    status    = GameStatus.StartScreen;
                }
            }

            if (status == GameStatus.Gameplay)
            {
                TimeLapse += (float)gameTime.ElapsedGameTime.TotalSeconds;
                hans.Update(gameTime);
                hans.UpdateAnimation(gameTime);

                grietje.Update(gameTime);
                grietje.UpdateAnimation(gameTime);


                if (UpdateCam)
                {
                    if (grietje.position.X < 700)
                    {
                        UpdateCam = false;
                    }

                    if (grietje.position.X < 3200 && grietje.position.X > 700)
                    {
                        cameraOne.Update(new Vector2(grietje.Center.X - 640, 700));
                    }

                    else
                    {
                        cameraOne.Update(new Vector2(2500, 700));
                    }
                }

                if (!UpdateCam)
                {
                    cameraOne.Update(new Vector2(100, 700));
                    if (grietje.position.X > 700)
                    {
                        cameraOne.Update(new Vector2(grietje.Center.X - 640, 700));
                    }
                }

                if (kb.IsKeyDown(Keys.Escape))
                {
                    status = GameStatus.GameOver;
                }

                manager.Update(gameTime);
            }

            /*
             * if (Vector2.Distance(hans.position, grietje.position) > 640)
             * {
             *  grietje.onPosition = false;
             *  grietje.Relocate(hans.position);
             * }*/



            //Console.WriteLine(level.SpawnNextlvl);
            // TODO: Add your update logic here

            base.Update(gameTime);
        }