static void Main(string[] args) { v0 = 50; Random locationInitializer = new Random(); settings.AntialiasingLevel = 10; window = new RenderWindow(new VideoMode(800, 500), "Worchbound", Styles.Default, settings); projectile.Position = new Vector2f(-10f, -10f); player1.Position = new Vector2f(locationInitializer.Next(50, 350), locationInitializer.Next(100, 300)); player2.Position = new Vector2f(locationInitializer.Next(450, 750), locationInitializer.Next(100, 300)); player1Gun.Position = new Vector2f(player1.Position.X + 25, player1.Position.Y - 5); player2Gun.Position = new Vector2f(player2.Position.X + 25, player2.Position.Y); player2Gun.Rotation = 180; Text text = new Text(); window.KeyPressed += Window_KeyPressed; while (window.IsOpen) { window.DispatchEvents(); window.Clear(); if (isBallInFlight) { projectile = UpdateProjectilePosition(projectile, 0.016f); } else if (projectile.Position.Y > 500) { isBallInFlight = false; if (isPlayer1Turn) { isPlayer1Turn = false; } else if (!isPlayer1Turn) { isPlayer1Turn = true; } } else if (isPlayer1Turn) { if ((projectile.Position.Y + projectile.Radius >= player1.Position.Y) && (projectile.Position.X >= player1.Position.X) && (projectile.Position.X <= player1.Position.X + player1.Size.X)) { window.Close(); } if ((projectile.Position.X + projectile.Radius >= player1.Position.X) && (projectile.Position.Y >= player1.Position.Y) && (projectile.Position.Y >= player1.Position.Y + player1.Size.Y)) { window.Close(); } if ((projectile.Position.X + projectile.Radius >= player2.Position.X) && (projectile.Position.Y <= player2.Position.Y) && (projectile.Position.Y >= player2.Position.Y + player2.Size.Y)) { window.Close(); } } else if (!isPlayer1Turn) { if ((projectile.Position.Y + projectile.Radius >= player2.Position.Y) && (projectile.Position.X <= player2.Position.X) && (projectile.Position.X >= player2.Position.X + player2.Size.X)) { window.Close(); } if ((projectile.Position.X + projectile.Radius >= player2.Position.X) && (projectile.Position.Y <= player2.Position.Y) && (projectile.Position.Y >= player2.Position.Y + player2.Size.Y)) { window.Close(); } if (new Vector2f(-projectile.Position.X - projectile.Position.Y, -projectile.Position.X - projectile.Position.Y) == player2.Position) { window.Close(); } } window.SetTitle(v0.ToString()); window.Draw(text); window.Draw(projectile); window.Draw(player1); window.Draw(player2); window.Draw(player1Gun); window.Draw(player2Gun); window.Display(); } }
static Projectile UpdateProjectilePosition(Projectile projectile, float timeStep) { Projectile result = new Projectile(5f); result.Position = new Vector2f(projectile.Position.X + projectile.VX * timeStep, projectile.Position.Y + projectile.VY * timeStep); result.VX = projectile.VX + windRandomizer.Next() * timeStep; result.VY = projectile.VY - gravity * timeStep; return result; }