Esempio n. 1
0
        public void Update(GameTime gameTime)
        {
            if (!Full)
            {
                return;
            }
            lastMouseState = mouseState;
            mouseState     = Mouse.GetState();

            float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;

            foreach (Galaxy galaxy in Systems)
            {
                foreach (SolarSystem solarsystem in galaxy.Children)
                {
                    foreach (PlanetaryObject planet in solarsystem.Children)
                    {
                        planet.Angle += (float)gameTime.ElapsedGameTime.TotalSeconds / 3;
                    }
                }
            }

            Camera.Position = Vector2.Lerp(Camera.Position, CameraPointTo, CameraLerpSpeed * (elapsed * 60));

            FadeText(elapsed);
            if (!Game.IsMouseOnControl)
            {
                Zoom();
                if (mouseState.LeftButton == ButtonState.Pressed && lastMouseState.LeftButton == ButtonState.Released)
                {
                    foreach (Galaxy galaxy in Systems)
                    {
                        foreach (SolarSystem solarsystem in galaxy.Children)
                        {
                            foreach (PlanetaryObject planet in solarsystem.Children)
                            {
                                if (GetPlanetCircle(planet).Contains(mouseState.GetPositionPoint()))
                                {
                                    ClickPlanet(planet);
                                }
                            }
                        }
                    }
                }
            }

            HandleInput(gameTime);

            newZoom     = MathHelper.Clamp(newZoom, MinZoom, MaxZoom);
            Camera.Zoom = MathHelper.Lerp(Camera.Zoom, newZoom, 0.1f * (elapsed * 60));
            Game.MainWindow.tbrZoom.Value = (int)(newZoom * 100);
            //Clamp Camera
            if (CameraPointTo.X + Camera.Origin.X > TotalSize * apart || CameraPointTo.X + Camera.Origin.X < 0 || CameraPointTo.Y + Camera.Origin.Y > TotalSize * apart || CameraPointTo.Y + Camera.Origin.Y < 0)
            {
                CameraPointTo = new Vector2(MathHelper.Clamp(CameraPointTo.X, 0, TotalSize * apart), MathHelper.Clamp(CameraPointTo.Y, 0, TotalSize * apart));
            }
        }