Ejemplo n.º 1
0
 protected override void LoadContent()
 {
     gameIsStarted = false;
     spriteBatch = new SpriteBatch(GraphicsDevice);
     Library.LoadContent(Content);
     random = new Random();
     cursor = new Cursor();
     level = new Level();
     levelEditor = new LevelEditor();
     saver = new SaveFileManager();
     saver.LoadLevel("level1");
     camera = new Camera(new Vector2(GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height));
     HUDCamera = new Camera(new Vector2(GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height));
     camera.CenterOn(level.startPos);
     HUDCamera.CenterOn(level.startPos);
     camera.Update();
     HUDCamera.Update();
     menu = new Menu();
     currentState = GameState.MainMenu;
     parallaxClouds = new ParallaxBackground(Vector2.Zero, Library.textures["Clouds"], 0.5f);
     parallaxMoon = new ParallaxBackground(new Vector2(700, 20), Library.textures["Moon"], 0.4f);
     //graphics.PreferredBackBufferHeight = (int)(graphics.PreferredBackBufferWidth / GraphicsDevice.DisplayMode.AspectRatio);
     if(GraphicsDevice.DisplayMode.AspectRatio == (8/6))
         graphics.IsFullScreen = true;
     graphics.ApplyChanges();
     song = Library.sounds["BaineSong"];
     songLoop = song.CreateInstance();
     songLoop.IsLooped = true;
     songLoop.Play();
 }
Ejemplo n.º 2
0
        public void Update(Cursor cursor)
        {
            Vector2 mousePos = Input.Mouse_Position();

            if (openMenu())
            {
                position = mousePos;

                for (int i = 0; i < itemCount; i++)
                {
                    displayedItems.Add(allItems[i]);
                    displayedItems[i].Open();
                }
                IsOpen = true;
                Use();
            }

            if (IsOpen)
            {
                Vector2 input = Input.GP_LeftThumbstick(PlayerIndex.One);
                if (input != Vector2.Zero)
                {
                    input.Y *= -1;
                    float rotation = (float)Math.Atan2(input.Y, input.X);
                    Vector2 direction = new Vector2((float)Math.Cos(rotation) * 32, (float)Math.Sin(rotation) * 32);
                    PhysicsHelper.MoveTowards(ref mousePos, position + direction, 5);
                    Mouse.SetPosition((int)mousePos.X, (int)mousePos.Y);
                    cursor.Face(input);
                }
                diff = mousePos - position;
                angle = (float)Math.Atan2(diff.Y, diff.X);
                float percentualPosition = (MathHelper.WrapAngle(angle - MathHelper.PiOver2) + MathHelper.Pi) / MathHelper.TwoPi;
                if (diff.Length() > nullRadius)
                    index = Convert.ToInt32(displayedItems.Count * percentualPosition) >= itemCount ? 0 : Convert.ToInt32(displayedItems.Count * percentualPosition);
            }

            for (int i = 0; i < displayedItems.Count; i++)
            {
                displayedItems[i].Update(index);
                if (displayedItems[i].IsClosed())
                    displayedItems.RemoveAt(i);
            }

            if (displayedItems.Count > 0)
            {
                scale = displayedItems[displayedItems.Count / 2].scale;
                fade = Color.Multiply(Color.White, displayedItems[displayedItems.Count / 2].scale);
            }

            if (closeMenu())
            {
                for (int i = 0; i < displayedItems.Count; i++)
                {
                    displayedItems[i].Close();
                }
                IsOpen = false;
            }
        }