Ejemplo n.º 1
0
        /// <summary>
        /// Allows the game component to perform any initialization it needs to before starting
        /// to run.  This is where it can query for any required services and load content.
        /// </summary>
        public override void Initialize()
        {
            // TODO: Add your initialization code here
            _spriteBatch = new SpriteBatch(Game.GraphicsDevice);

            _myBall = new Ball();
            _myBall.VelocityFromAngle(180.0f * (float)Math.PI / 180.0f, 800);
            _myBall.Circle.Position.X = 180;
            _myBall.Circle.Position.Y = 100 + 44;

            _levelBricks = new List<AABB>();

            _levelBricks.Add(new AABB(0, 0, 1, Game.Window.ClientBounds.Height));
            _levelBricks.Add(new AABB(0, Game.Window.ClientBounds.Height, Game.Window.ClientBounds.Width, 1));
            _levelBricks.Add(new AABB(Game.Window.ClientBounds.Width, 0, 1, Game.Window.ClientBounds.Height));
            _levelBricks.Add(new AABB(0, 0, Game.Window.ClientBounds.Width, 1));

            //_levelBricks.Add(new AABB(200, 100, 20, 65));
            //_levelBricks.Add(new AABB(200, 220, 20, 20));

            //_levelBricks.Add(new AABB(300, 300, 20, 20));
            //_levelBricks.Add(new AABB(20, 20, 20, 20));

            //Random r = new Random();

            //for (int i = 0; i < 40; ++i)
            //{
            //    _levelBricks.Add(new AABB(r.Next(0, Game.Window.ClientBounds.Width), r.Next(0, Game.Window.ClientBounds.Height), r.Next(20, 30), r.Next(20, 30)));
            //}

            _prevKeyState = Keyboard.GetState();

            base.Initialize();
        }
Ejemplo n.º 2
0
        private void UpdateBall(Ball ball, float dt)
        {
            if (_ballPaused) return;

            if (_incBallSpeed)
            {
                ball.Velocity *= 1.1f;
                //ball.Velocity = Vector2.Clamp(ball.Velocity, new Vector2(-960.0f, -960.0f), new Vector2(960.0f, 960.0f));
                _incBallSpeed = false;
            }

            if (_decBallSpeed)
            {
                ball.Velocity *= 0.9f;
                //ball.Velocity = Vector2.Clamp(ball.Velocity, new Vector2(-960.0f, -960.0f), new Vector2(960.0f, 960.0f));
                _decBallSpeed = false;
            }

            ball.LastPosition = ball.Circle.Position;

            ball.Circle.Position += ball.Velocity * dt;

            //Console.WriteLine("old: " + ball.LastPosition);
            //Console.WriteLine("current: " + ball.Circle.Position);

            ApplyCollision();

            //Console.WriteLine("new: " + ball.Circle.Position);
        }
Ejemplo n.º 3
0
        private void DrawBall(Ball ball)
        {
            Vector2 origin;

            origin.X = ball.Circle.Radius;
            origin.Y = ball.Circle.Radius;

            _spriteBatch.Begin();

            _spriteBatch.Draw(_ballTexture, ball.Circle.Position, null, Color.White, 0, origin, 1, SpriteEffects.None, 0);

            _spriteBatch.Draw(_vectorTexture, ball.Circle.Position, null, Color.White, (float)Math.Atan2(ball.Velocity.Y, ball.Velocity.X), origin, 1, SpriteEffects.None, 0);

            _spriteBatch.End();
        }