private bool OnStart() { var backbufferWidth = (float)GraphicsDevice.BackbufferWidth(); var backbufferHeight = (float)GraphicsDevice.BackbufferHeight(); // Init area. var borderThickness = 32.0f; var area = new Rectf(borderThickness, borderThickness, backbufferWidth - borderThickness * 2.0f, backbufferHeight - borderThickness); // Create player. var playerSize = new Vector2(128.0f, 32.0f); var playerPosition = new Vector2(area.Right - area.width / 2.0f, area.Bottom - borderThickness * 4.0f); player = new Player(playerPosition, playerSize, area); player.Rect.Fill = Color.Green; // Create borders. var borderElements = new Rectangle[4]; // Right. borderElements[0] = new Rectangle(new Vector2(backbufferWidth - borderThickness / 2.0f, backbufferHeight / 2.0f), new Vector2(borderThickness, backbufferHeight)); // Left. borderElements[1] = new Rectangle(new Vector2(borderThickness / 2.0f, backbufferHeight / 2.0f), new Vector2(borderThickness, backbufferHeight)); // Top. borderElements[2] = new Rectangle(new Vector2(backbufferWidth / 2.0f, borderThickness / 2.0f), new Vector2(backbufferWidth - borderThickness, borderThickness)); // Bottom. borderElements[3] = new Rectangle(new Vector2(backbufferWidth / 2.0f, backbufferHeight - borderThickness / 2.0f), new Vector2(backbufferWidth - borderThickness, borderThickness)); // Create ball. const float radius = 32.0f; var playerTransform = player.Rect.Transform; ball = new Ball(new Vector2(playerTransform.position.x + player.Rect.LocalBounds.width / 2.0f, playerTransform.position.y - player.Rect.LocalBounds.height * 2.0f), radius, new Rectf[] { borderElements[0].GlobalBounds, borderElements[1].GlobalBounds, borderElements[2].GlobalBounds, borderElements[3].GlobalBounds }); ball.Circle.Fill = Color.Green; ball.Circle.BorderFill = new Color(125, 125, 0, 255); // Create 8x8 grid of bricks. bricks = new List <Rectangle>(); // Offset. const float rows = 8.0f; const float columns = 8.0f; const float boff = 64.0f; // Start x and y. var bsx = area.Left + boff; var bsy = area.Top + boff; // Width and height. var bw = (area.width - boff * 2.0f) / columns; var bh = (area.height / 2.0f) / rows; for (var h = 0; h < 8; h++) { for (var w = 0; w < 8; w++) { var x = bsx + w * bw; var y = bsy + h * bh; var brick = new Rectangle(x, y, bw, bh); var color = new Color((float)rand.NextDouble(), (float)rand.NextDouble(), (float)rand.NextDouble(), (float)rand.NextDouble()); var transform = brick.Transform; transform.origin = Vector3.Zero; brick.Transform = transform; brick.Fill = color; bricks.Add(brick); } } // Create layer and add elements. var layer = Layers.CreateDynamic("bottom"); layer.Add(player.Rect); layer.Add(ball.Circle); foreach (var element in borderElements) { layer.Add(element); } foreach (var element in bricks) { layer.Add(element); } return(true); }