/// <summary> /// This is called when the game should draw itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { /*Random random2 = new Random(DateTime.Now.Millisecond); * * byte r = (byte)random2.Next(0, 255); * byte g = (byte)random2.Next(0, 255); * byte b = (byte)random2.Next(0, 255); * * Color tempCol; * tempCol = new Color(r, g, b); * * GraphicsDevice.Clear(tempCol);*/ GraphicsDevice.Clear(bgColor); String Score; if (gameOver == false) { //Vector2 averagePos; //averagePos.X = (MyCircle.Pos.X + MyCircle2.Pos.X) / 2; //averagePos.Y = (MyCircle.Pos.Y + MyCircle2.Pos.Y) / 2; // TODO: Add your drawing code here /*if (averagePos.Y > windowHeight / 2) * { * camY = 0; * } * else * { * camY = -averagePos.Y + windowHeight / 2.0f; * } * if (averagePos.X < windowWidth / 2 || Level.levelType == 1) * { * camX = 0; * } * else * { * camX = -averagePos.X + windowWidth / 2.0f; * * }*/ if (MyCircle.Pos.Y > windowHeight / 2) { camY = 0; } else { camY = -MyCircle.Pos.Y + windowHeight / 2.0f; } if ((MyCircle.Pos.X < windowWidth / 2 || Level.levelType == 1)) { camX = 0; } else { camX = -MyCircle.Pos.X + windowWidth / 2.0f; } /*if (MyCircle.Pos.X - MyCircle2.Pos.X > windowWidth) * { * MyCircle2.Pos.X = MyCircle.Pos.X - windowWidth / 2 +50; * for (int i = Game1.surfaces.Count - 1; i >= 0; i--) * { * while (Game1.surfaces[i].CheckCollision(MyCircle2) != 0) * { * MyCircle2.Pos.X += 4; * } * } * } * * if (MyCircle2.Pos.X - MyCircle.Pos.X > windowWidth) * { * MyCircle.Pos.X = MyCircle2.Pos.X - windowWidth / 2 + 50; * for (int i = Game1.surfaces.Count - 1; i >= 0; i--) * { * while (Game1.surfaces[i].CheckCollision(MyCircle) != 0) * { * MyCircle.Pos.X += 4; * } * } * }*/ Vector3 transVector = new Vector3(camX, camY - 10 * currentLevel.Grid.Count, 0.0f); float distance = (float)Math.Sqrt((Math.Pow((MyCircle.Pos.Y - MyCircle2.Pos.Y), 2) + Math.Pow((MyCircle.Pos.X - MyCircle2.Pos.X), 2))); Console.WriteLine(distance); Matrix SpriteScale = Matrix.CreateScale(graphics.GraphicsDevice.Viewport.Width / 800f, graphics.GraphicsDevice.Viewport.Width / 800f, 1); //Matrix SpriteScale = Matrix.CreateScale(distance, distance, 1); spriteBatch.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend, null, null, null, null, SpriteScale); spriteBatch.Draw(BGTexture, new Vector2(0, 0), Color.White); spriteBatch.End(); spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend, null, null, null, null, Matrix.CreateTranslation(transVector) * SpriteScale); //MyLevel1.draw() for (int i = 0; i < surfaces.Count; i++) { surfaces[i].draw(); } for (int i = 0; i < items.Count; i++) { items[i].spawn(); } MyCircle.draw(); MyCircle2.draw(); MyCircle3.draw(); MyCircle4.draw(); spriteBatch.End(); ForegroundBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend, null, null, null, null, SpriteScale); Score = score.ToString(); Vector2 FontOrigin = Segoi.MeasureString("Score: " + Score) / 2; Vector2 fpos = new Vector2(130, 50); Color temp = new Color(12, 179, 238); ForegroundBatch.DrawString(Segoi, "Player 1: " + MyCircle.Score, fpos, temp, 0f, FontOrigin, .5f, SpriteEffects.None, 0.5f); fpos = new Vector2(670, 50); ForegroundBatch.DrawString(Segoi, "Player 2: " + MyCircle2.Score, fpos, temp, 0f, FontOrigin, .5f, SpriteEffects.None, 0.5f); fpos = new Vector2(130, 420); ForegroundBatch.DrawString(Segoi, "Player 3: " + MyCircle3.Score, fpos, temp, 0f, FontOrigin, .5f, SpriteEffects.None, 0.5f); fpos = new Vector2(670, 420); ForegroundBatch.DrawString(Segoi, "Player 4: " + MyCircle4.Score, fpos, temp, 0f, FontOrigin, .5f, SpriteEffects.None, 0.5f); ForegroundBatch.End(); } base.Draw(gameTime); }