protected override void LoadContent() { _spriteBatch = new SpriteBatch(Globals.GraphicsDevice); ScreenUtility.InitGraphicsMode(800, 480, false); _circles[0] = new CircularExtent(); _circles[0].Reset(new Vector2(100, 100), 50); _circles[0].ReAnchor(_circles[0].Center); _circles[1] = new CircularExtent(); _circles[1].Reset(new Vector2(300, 300), 50); _circles[1].ReAnchor(_circles[1].Center); _circles[2] = new CircularExtent(); _circles[2].Reset(new Vector2(400, 350), 100); _circles[2].ReAnchor(_circles[2].Center); _circles[3] = new CircularExtent(); _circles[3].Reset(new Vector2(300, 100), 75); _circles[3].ReAnchor(_circles[3].Center); _contentLoaded = true; }
protected override void Update(GameTime gameTime) { // For Mobile devices, this logic will close the Game when the Back button is pressed // Exit() is obsolete on iOS #if !__IOS__ && !__TVOS__ if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) { Exit(); } #endif base.Update(gameTime); KeyboardState ks = Keyboard.GetState(); #region Move Circle CircularExtent circleToMove = null; if (ks.IsKeyDown(Keys.D1)) { circleToMove = _circles[0]; } if (ks.IsKeyDown(Keys.D2)) { circleToMove = _circles[1]; } if (ks.IsKeyDown(Keys.D3)) { circleToMove = _circles[2]; } if (ks.IsKeyDown(Keys.D4)) { circleToMove = _circles[3]; } if (null != circleToMove) { if (ks.IsKeyDown(Keys.A)) { circleToMove.Anchor -= new Vector2(5, 0); } if (ks.IsKeyDown(Keys.D)) { circleToMove.Anchor += new Vector2(5, 0); } if (ks.IsKeyDown(Keys.W)) { circleToMove.Anchor -= new Vector2(0, 5); } if (ks.IsKeyDown(Keys.S)) { circleToMove.Anchor += new Vector2(0, 5); } if (ks.IsKeyDown(Keys.Q)) { circleToMove.Angle -= 0.04f; } if (ks.IsKeyDown(Keys.E)) { circleToMove.Angle += 0.04f; } if (ks.IsKeyDown(Keys.Z)) { circleToMove.Scale *= 1.04f; } if (ks.IsKeyDown(Keys.C)) { circleToMove.Scale /= 1.04f; } } #endregion #region Check for Collisions for (int i = 0; i < 4; i++) { _inCollision[i] = false; } for (int i = 0; i < 4; i++) { if (i == 3) { break; } for (int j = i + 1; j < 4; j++) { if (_circles[i].Intersects(_circles[j])) { _inCollision[i] = true; _inCollision[j] = true; } } } #endregion }
protected override void LoadContent() { _spriteBatch = new SpriteBatch(Globals.GraphicsDevice); ScreenUtility.InitGraphicsMode(800, 480, false); var circle = new CircularExtent(); circle.Reset(new Vector2(100, 100), 50); circle.ReAnchor(circle.Center); _extents[0] = circle; circle = new CircularExtent(); circle.Reset(new Vector2(300, 300), 75); circle.ReAnchor(circle.Center); _extents[1] = circle; var vertices = new List <Vector2>(); vertices.Add(new Vector2(300, 300)); vertices.Add(new Vector2(400, 300)); vertices.Add(new Vector2(420, 400)); vertices.Add(new Vector2(350, 450)); vertices.Add(new Vector2(280, 400)); var poly = new PolygonExtent(); poly.Reset(vertices); poly.ReAnchor(poly.Center); _extents[2] = poly; vertices.Clear(); Vector2 offset = new Vector2(300, 100); vertices.Add(offset + new Vector2(0, 0)); vertices.Add(offset + new Vector2(50, 0)); vertices.Add(offset + new Vector2(50, -50)); vertices.Add(offset + new Vector2(100, -50)); vertices.Add(offset + new Vector2(100, 0)); vertices.Add(offset + new Vector2(150, 0)); vertices.Add(offset + new Vector2(150, 50)); vertices.Add(offset + new Vector2(100, 50)); vertices.Add(offset + new Vector2(100, 100)); vertices.Add(offset + new Vector2(50, 100)); vertices.Add(offset + new Vector2(50, 50)); vertices.Add(offset + new Vector2(0, 50)); poly = new PolygonExtent(); poly.Reset(vertices); poly.ReAnchor(poly.Center); _extents[3] = poly; var composite = new CompositeExtent(); var child1 = new CircularExtent(); child1.Reset(new Vector2(50, 50), 50); child1.ReAnchor(circle.Center); vertices = new List <Vector2>(); vertices.Add(new Vector2(100, 100)); vertices.Add(new Vector2(200, 100)); vertices.Add(new Vector2(200, 200)); vertices.Add(new Vector2(100, 200)); var child2 = new PolygonExtent(); child2.Reset(vertices); child2.ReAnchor(poly.Center); composite.Add(child1); composite.Add(child2); _extents[4] = composite; _contentLoaded = true; }