Ejemplo n.º 1
0
 //public void SaveToXML(string filename) {
 //    using (var stream = new FileStream(filename, FileMode.Create)) {
 //        var XML = new XmlSerializer(typeof(Zone),new Type[] { typeof(Rectangle),});
 //        XML.Serialize(stream, this);
 //    }
 //}
 /// <summary>
 /// Moves the zone and character when using WASD ingame
 /// </summary>
 /// <param name="state">An updating KeyboardState</param>
 /// <param name="ui">The main user interface</param>
 public void Move(KeyboardState state, UI ui)
 {
     if (Game1.currentGameState == Game1.GameState.InGame)
     {
         if (!Game1.notAllowedKeys.Contains(Keys.D) &&
             vector.X - pc.MoveSpeed >= graphics.resX - graphics.texture.Width &&
             state.IsKeyDown(Keys.D) &&
             pc.getX() >= graphics.resX / 2 - pc.Graphics.texture.Width / 2)
         {
             vector.X           -= pc.MoveSpeed;
             grid.vectorDelta.X -= pc.MoveSpeed;
             if (hasBackground)
             {
                 background.vector.X -= background.Speed;
             }
         }
         else if (!Game1.notAllowedKeys.Contains(Keys.D) &&
                  pc.getX() + pc.MoveSpeed <= graphics.resX - pc.Graphics.texture.Width &&
                  state.IsKeyDown(Keys.D))
         {
             pc.setX(pc.getX() + pc.MoveSpeed);
         }
         if (!Game1.notAllowedKeys.Contains(Keys.A) && vector.X + pc.MoveSpeed <= 0 &&
             state.IsKeyDown(Keys.A) &&
             pc.getX() <= graphics.resX / 2 - pc.Graphics.texture.Width / 2)
         {
             vector.X           += pc.MoveSpeed;
             grid.vectorDelta.X += pc.MoveSpeed;
             if (hasBackground)
             {
                 background.vector.X += background.Speed;
             }
         }
         else if (!Game1.notAllowedKeys.Contains(Keys.A) && pc.getX() >= 0 && state.IsKeyDown(Keys.A))
         {
             pc.setX(pc.getX() - pc.MoveSpeed);
         }
         if (!Game1.notAllowedKeys.Contains(Keys.S) &&
             vector.Y - pc.MoveSpeed >= graphics.resY - graphics.texture.Height &&
             state.IsKeyDown(Keys.S) && pc.getY() >= graphics.resY / 2 - pc.Graphics.texture.Height)
         {
             vector.Y           -= pc.MoveSpeed;
             grid.vectorDelta.Y -= pc.MoveSpeed;
             if (hasBackground)
             {
                 background.vector.Y -= background.Speed;
             }
         }
         else if (!Game1.notAllowedKeys.Contains(Keys.S) &&
                  pc.getY() + pc.MoveSpeed <= (graphics.resY - pc.Graphics.texture.Height) &&
                  state.IsKeyDown(Keys.S))
         {
             pc.setY(pc.getY() + pc.MoveSpeed);
         }
         if (!Game1.notAllowedKeys.Contains(Keys.W) &&
             vector.Y + pc.MoveSpeed <= 0 && state.IsKeyDown(Keys.W) &&
             pc.getY() <= graphics.resY / 2 - pc.Graphics.texture.Height / 2)
         {
             vector.Y           += pc.MoveSpeed;
             grid.vectorDelta.Y += pc.MoveSpeed;
             if (hasBackground)
             {
                 background.vector.Y += background.Speed;
             }
         }
         else if (!Game1.notAllowedKeys.Contains(Keys.W) && pc.getY() - pc.MoveSpeed >= 0 && state.IsKeyDown(Keys.W))
         {
             pc.setY(pc.getY() - pc.MoveSpeed);
         }
     }
 }