/// <summary> /// The main entry point for the application. /// </summary> static void Main(string[] args) { using (Game1 game = new Game1()) { game.Run(); } }
public static void Draw(float yPos, float worldScreenWidth, GraphicsDevice gd, Game1 game, GameTime gameTime, Random rand, Viewport viewport) { float xPosition = 0.0f; float yPosition = -yPos; float zPosition = 0.0f; if (PrimitiveDrawing.shaking) { PrimitiveDrawing.shakeTimer += (float)gameTime.ElapsedGameTime.TotalSeconds; if ((double)PrimitiveDrawing.shakeTimer >= (double)PrimitiveDrawing.shakeDuration) { PrimitiveDrawing.shaking = false; PrimitiveDrawing.shakeTimer = PrimitiveDrawing.shakeDuration; } float num1 = PrimitiveDrawing.shakeTimer / PrimitiveDrawing.shakeDuration; float num2 = PrimitiveDrawing.shakeMagnitude * (float)(1.0 - (double)num1 * (double)num1); xPosition = (float)(rand.NextDouble() * 2.0 - 1.0) * num2; yPosition += (float)(rand.NextDouble() * 2.0 - 1.0) * num2; } PrimitiveDrawing.basicEffect = new BasicEffect(gd) { Projection = Matrix.CreateOrthographic(worldScreenWidth, worldScreenWidth / gd.Viewport.AspectRatio, 0.0f, 1f), View = Matrix.CreateTranslation(xPosition, yPosition, zPosition), VertexColorEnabled = true }; foreach (Body body in PrimitiveDrawing.world.BodyList) { if (body != game.highScoreLine || body.UserData == (ValueType)Mine.MineColor) PrimitiveDrawing.DrawBody(body); } PrimitiveDrawing.DrawBody(game.highScoreLine); gd.Viewport = viewport; foreach (EffectPass effectPass in PrimitiveDrawing.basicEffect.CurrentTechnique.Passes) { effectPass.Apply(); if (PrimitiveDrawing.TriangleVerts.Count > 0) gd.DrawUserPrimitives<VertexPositionColor>(PrimitiveType.TriangleList, PrimitiveDrawing.TriangleVerts.ToArray(), 0, PrimitiveDrawing.TriangleVerts.Count / 3); if (PrimitiveDrawing.LineVerts.Count > 0) gd.DrawUserPrimitives<VertexPositionColor>(PrimitiveType.LineList, PrimitiveDrawing.LineVerts.ToArray(), 0, PrimitiveDrawing.LineVerts.Count / 2); } PrimitiveDrawing.LineVerts.Clear(); PrimitiveDrawing.TriangleVerts.Clear(); }