static void Main() { using (var game = new Game1()) game.Run(); }
public void Update(Random rand) { if (Game1.GetDistance(pos, Target) < 1) { pos = Target; } else { movement.X = (Target.X - pos.X) * World.cameraSpeed; movement.Y = (Target.Y - pos.Y) * World.cameraSpeed; pos += movement; } if (Math.Abs(rotation - RotationTarget) < 0.001f) { rotation = RotationTarget; } else { rotation += (RotationTarget - rotation) * World.cameraTorque; } shakeOffset = Vector2.Zero; for (int i = 0; i < shakes.Count; i++) { shakeOffset += new Vector2(shakes[i].X * ((float)rand.NextDouble() * 2 - 1), shakes[i].Y * ((float)rand.NextDouble() * 2 - 1)); shakeDurations[i]--; if (shakeDurations[i] <= 0) { shakeDurations.RemoveAt(i); shakes.RemoveAt(i); } } pos += shakeOffset; if (pos.X == float.NaN) { pos.X = posPrev.X; } if (pos.Y == float.NaN) { pos.Y = posPrev.Y; } rectangle = new Rectangle(Game1.CeilAdv(pos.X - zoom * World.screenWidth / 2) - 32, Game1.CeilAdv(pos.Y - zoom * World.screenHeight / 2) - 32, Game1.CeilAdv(World.screenWidth * zoom) + 64, Game1.CeilAdv(World.screenHeight * zoom) + 64); //rectangle = new Rectangle(Game1.CeilAdv(pos.X), Game1.CeilAdv(pos.Y), Game1.CeilAdv(World.screenWidth * zoom), Game1.CeilAdv(World.screenHeight * zoom)); posPrev = pos; }