コード例 #1
0
ファイル: Game1.cs プロジェクト: BlayeeR/RiverRaid
        /// <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)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);
            spriteBatch.Begin();
            mapGenerator.Draw(spriteBatch, debugMode);



            if (debugMode)
            {
                Texture2D tx = new Texture2D(GraphicsDevice, 1, 1, false, SurfaceFormat.Color);
                tx.SetData <Color>(new Color[] { Color.White });
                spriteBatch.Draw(tx, player.Rectangle, Color.Green);
                spriteBatch.Draw(tx, player.HorizontalHitbox, Color.White);
                spriteBatch.Draw(tx, player.VerticalHitbox, Color.White);
                foreach (Plane pl in enemies)
                {
                    spriteBatch.Draw(tx, pl.Rectangle, Color.Green);

                    spriteBatch.Draw(tx, pl.HorizontalHitbox, Color.White);
                    spriteBatch.Draw(tx, pl.VerticalHitbox, Color.White);
                }
            }
            foreach (Plane pl in enemies)
            {
                spriteBatch.Draw(pl.Texture, pl.Rectangle, Color.White);
            }
            spriteBatch.Draw(player.Texture, player.Rectangle, Color.White);

            foreach (Bullet bullet in player.Bullets)
            {
                spriteBatch.Draw(bullet.Texture, bullet.Rectangle, Color.Yellow);
            }
            //spriteBatch.Draw(HelperClass.GetTexture(spriteBatch), new Rectangle(new Point(0, 0), new Point(graphics.GraphicsDevice.Viewport.Width, 25)), Color.Red);

            int distance = 0;

            foreach (Plane enemy in enemies)
            {
                foreach (Bullet bullet in player.Bullets)
                {
                    distance = (int)Math.Sqrt(Math.Pow(bullet.Position.X - enemy.Center.X, 2) + Math.Pow(bullet.Position.Y - enemy.Center.Y, 2));
                    if (distance /*> Math.Sqrt(Math.Pow(bullet.Position.X - enemy.Position.X, 2) + Math.Pow(bullet.Position.Y - enemy.Position.Y, 2))*/ < 300 && bullet.Position.Y > enemy.Center.Y)
                    {
                        HelperClass.DrawLine(spriteBatch, HelperClass.GetTexture(spriteBatch), new Vector2(enemy.Center.X, enemy.Position.Y + enemy.Size.Y), bullet.Position, new Color(244, distance, 66));
                        //distance = (int)Math.Sqrt(Math.Pow(bullet.Position.X - enemy.Position.X, 2) + Math.Pow(bullet.Position.Y - enemy.Position.Y, 2));
                    }
                }
            }
            spriteBatch.End();
            // TODO: Add your drawing code here

            base.Draw(gameTime);
        }
コード例 #2
0
 public void Draw(SpriteBatch spriteBatch, bool debugMode)
 {
     for (int i = 0; i < leftSide.Length; i++)
     //foreach(Rectangle rectangle in leftSide)
     {
         if (debugMode)
         {
             spriteBatch.Draw(HelperClass.GetTexture(spriteBatch), leftSide[i], (i == lastRectangleIndex) ? Color.Yellow : (i == previous) ? Color.Red : Color.Green);
             spriteBatch.Draw(HelperClass.GetTexture(spriteBatch), rightSide[i], (i == lastRectangleIndex) ? Color.Yellow : (i == previous) ? Color.Red : Color.Green);
         }
         else
         {
             spriteBatch.Draw(HelperClass.GetTexture(spriteBatch), leftSide[i], Color.Green);
             spriteBatch.Draw(HelperClass.GetTexture(spriteBatch), rightSide[i], Color.Green);
         }
     }
 }