Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        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;
        }