Update() public method

public Update ( ) : void
return void
Beispiel #1
0
        public override void Update(GameTime gameTime)
        {
            if (players.Length == 1)
            {
                _showEndScene();
            }

            // for managing the scenes
            if (endScene)
            {
                timeElapsed += (float)gameTime.ElapsedGameTime.TotalSeconds;
                if (timeElapsed > timeToUpdate)
                {
                    State = 1;
                }
                return;
            }

            //birds update
            flock.update(gameTime);

            if ((!Rocket.rocketFlying))
            {
                ProcessKeyboard();
            }

            if (Rocket.rocketFlying)
            {
                _rocket.Update(gameTime);
                CheckCollisions(gameTime);
            }

            if (_explosion.particleList.Count > 0)
            {
                UpdateParticles(gameTime);
            }

            if (randomExplosionPos.X > -1)
            {
                AddExplosion(randomExplosionPos, 4, 30.0f, 1000.0f, gameTime);
                this.randomExplosionPos = new Vector2(-1, -1);
                soundCenter.HitTerrain.Play();
            }

            base.Update(gameTime);
        }
Beispiel #2
0
        public override ScreenState Update(DateTime gameTime)
        {
            ScreenState ret = ScreenState.Current;

            if (firstUpdate)
            {
                currentTick = gameTime.Ticks;
                firstUpdate = false;
            }

            if (winAnimation)
            {
                if (elapsed == TimeSpan.Zero)
                {
                    elapsed = TimeSpan.FromTicks(gameTime.Ticks - currentTick);
                }

                rocket.Y = rocket.Y - Convert.ToSingle(rocketVelocity++ *0.2);

                mainField.Update(gameTime);

                if (rocket.Y < -192)
                {
                    ret = ScreenState.Win;
                    Updatebalance(ret, elapsed);
                    StartNewGame();
                }

                return(ret);
            }

            var inp = device.GetInputState();

            if (inp.IsCancel)
            {
                ret = ScreenState.Menu;
            }
            else
            {
                bool isLive = mainField.GetSquareState(omich.X, omich.Y);
                if (!isLive)
                {
                    if (omich.IsLive())
                    {
                        device.PlaySound(soundWater);
                    }

                    omich.Dead();
                }
                else
                {
                    if (!omich.IsLive())
                    {
                        omich.Enabled = false;
                        ret           = ScreenState.Loose;
                    }
                }


                if (omich.IsLive())
                {
                    if (detail.Containts(omich) && detail.Enabled)
                    {
                        detail.Enabled = false;
                        device.PlaySound(soundVzmah);
                    }

                    if (rocket.Containts(omich) && !detail.Enabled)
                    {
                        if (detail.NextFrame())
                        {
                            detail.Enabled = true;
                            mainField.NextLevel();
                        }

                        if (!rocket.NextFrame())
                        {
                            device.PlaySound(soundBomb);
                            omich.Enabled = false;
                            winAnimation  = true;
                        }
                        else
                        {
                            device.PlaySound(soundDrel);
                        }
                    }

                    if (inp.Joystick == JoystickState.Down)
                    {
                        OmichMove(Direction.Down);
                    }
                    else if (inp.Joystick == JoystickState.Up)
                    {
                        OmichMove(Direction.Up);
                    }
                    else if (inp.Joystick == JoystickState.Left)
                    {
                        OmichMove(Direction.Left);
                    }
                    else if (inp.Joystick == JoystickState.Right)
                    {
                        OmichMove(Direction.Right);
                    }
                    else if (inp.Joystick == JoystickState.Press)
                    {
                        var Position = inp.Positions.First();

                        if (
                            (Position.Y <= omich.Y + 96) &&
                            (Position.Y >= omich.Y) &&
                            (Position.X > omich.X + 100)
                            )
                        {
                            OmichMove(Direction.Right);
                        }
                        else if (
                            (Position.Y <= omich.Y + 96) &&
                            (Position.Y >= omich.Y) &&
                            (Position.X < omich.X)
                            )
                        {
                            OmichMove(Direction.Left);
                        }
                        else if (
                            (Position.Y > omich.Y + 96)
                            )
                        {
                            OmichMove(Direction.Down);
                        }
                        else if (
                            (Position.Y < omich.Y)
                            )
                        {
                            OmichMove(Direction.Up);
                        }
                    }

                    if (omich.IsLive())
                    {
                        if (omich.X == 0)
                        {
                            omich.SeeRight();
                        }
                        else if (omich.X == 700)
                        {
                            omich.SeeLeft();
                        }
                    }
                }
            }

            mainField.Update(gameTime);
            omich.Update(gameTime);
            rocket.Update(gameTime);
            detail.Update(gameTime);

            if (ret != ScreenState.Current)
            {
                elapsed = TimeSpan.FromTicks(gameTime.Ticks - currentTick);
                Updatebalance(ret, elapsed);
                StartNewGame();
            }

            return(ret);
        }
Beispiel #3
0
        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            rocket.Update(4);

            cosmonaut1.Update(0.01);
            cosmonaut2.Update(-0.005);
            cosmonaut3.Update(-0.003);

            asteroid.Update(3);
            asteroid2.Update(4);
            asteroid3.Update(5);
            asteroid4.Update(6);
            asteroid5.Update(5);
            asteroid6.Update(4);

            #region Столкновение ракеты с космонавтами

            List <Cosmonaut> cosmonauts = new List <Cosmonaut>();
            cosmonauts.Add(cosmonaut1);
            cosmonauts.Add(cosmonaut2);
            cosmonauts.Add(cosmonaut3);

            foreach (Cosmonaut cosmonaut in cosmonauts)
            {
                if (collideRocketCosmonaut.CollideCosmonaut(rocket, cosmonaut))
                {
                    rocket._color = Color.Green;
                    cosmonaut.RandomSpaceCosmonaut();
                    cosm++;
                }
                else
                {
                    rocket._color = Color.White;
                }
            }
            #endregion

            #region Столкновение ракеты с астероидами

            List <Asteroid> asteroids = new List <Asteroid>();
            asteroids.Add(asteroid);
            asteroids.Add(asteroid2);
            asteroids.Add(asteroid3);
            asteroids.Add(asteroid4);
            asteroids.Add(asteroid5);
            asteroids.Add(asteroid6);

            foreach (Asteroid asteroid in asteroids)
            {
                if (collideRocketAsteroid.CollideAsteroid(rocket, asteroid))
                {
                    rocket._color = Color.Red;
                    asteroid.RandomSpaceAsteroid();
                    HP--;
                }
                else
                {
                    rocket._color = Color.White;
                }
            }
            #endregion

            base.Update(gameTime);
        }