These args are sent with drawing events so that things can draw on them. Pretty straightforward.
Inheritance: System.EventArgs
Beispiel #1
0
 public void GameRender(GameRenderEventArgs e)
 {
     if (inGamePlay)
     {
         Draw(e.RenderContext, positionX, positionY);
     }
 }
Beispiel #2
0
        void Instance_GameRender(GameRenderEventArgs e)
        {
            if (!Engine.Instance.DrawHitboxes)
            {
                return;
            }
            foreach (CollisionBox hitbox in hitboxes)
            {
                if (!enabledBoxes.Contains(hitbox.ID))
                {
                    continue;
                }

                hitbox.SetParent(this);
                var boundBox = hitbox.BoxAt(PositionSrc.Position);
                boundBox.Offset(-Parent.Screen.OffsetX, -Parent.Screen.OffsetY);

                if (rectTex == null)
                {
                    rectTex = e.RenderContext.CreateColorResource(new MegaMan.Common.Color(1, 0.6f, 0, 0.7f));
                }

                e.RenderContext.Draw(rectTex, 5, new Common.Geometry.Point((int)(boundBox.X), (int)(boundBox.Y)), new Common.Geometry.Rectangle(0, 0, (int)(boundBox.Width), (int)(boundBox.Height)));
            }
        }
 private void Instance_GameRender(GameRenderEventArgs e)
 {
     evenframe = !evenframe;
     foreach (var sprite in currentSpriteGroup)
     {
         RenderSprite(sprite, e);
     }
 }
Beispiel #4
0
        private void Instance_GameRenderEnd(GameRenderEventArgs e)
        {
            GraphicsDevice.SetRenderTarget(null);
            masterSpriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, Engine.Instance.FilterState, null, null);
            GraphicsDevice.Clear(Color.Black);

            DrawMasterTargetToBatch();

            masterSpriteBatch.End();
            EndDraw();
        }
        protected virtual void GameRender(GameRenderEventArgs e)
        {
            foreach (var obj in objects.Values)
            {
                obj.Draw(e.RenderContext);
            }

            if (Draw != null)
            {
                Draw(e);
            }
        }
Beispiel #6
0
        public void Draw(GameRenderEventArgs renderArgs, PointF playerPos, float adj_x = 0, float adj_y = 0, float off_x = 0, float off_y = 0)
        {
            int width  = Screen.PixelWidth;
            int height = Screen.PixelHeight;

            if (!isAutoscrolling)
            {
                offsetXF = offsetYF = 0;

                centerX = playerPos.X + adj_x;
                centerY = playerPos.Y + adj_y;

                if (centerX > Game.CurrentGame.PixelsAcross / 2)
                {
                    offsetXF = centerX - Game.CurrentGame.PixelsAcross / 2;
                    if (offsetXF > width - Game.CurrentGame.PixelsAcross)
                    {
                        offsetXF = width - Game.CurrentGame.PixelsAcross;
                    }
                }

                if (centerY > Game.CurrentGame.PixelsDown / 2)
                {
                    offsetYF = centerY - Game.CurrentGame.PixelsDown / 2;
                    if (offsetYF > height - Game.CurrentGame.PixelsDown)
                    {
                        offsetYF = height - Game.CurrentGame.PixelsDown;
                    }
                    if (offsetYF < 0)
                    {
                        offsetYF = 0;
                    }
                }

                offsetXF += off_x;
                offsetYF += off_y;
            }

            foreach (var layer in this.layers)
            {
                layer.Draw(renderArgs, this.Screen.PixelWidth);
            }
        }
        private void RenderSprite(Sprite currentSprite, GameRenderEventArgs e)
        {
            if (evenframe)
            {
                foreach (var meter in HealthMeter.AllMeters)
                {
                    var bounds = new RectangleF(currentSprite.BoundBox.X, currentSprite.BoundBox.Y,
                                                currentSprite.BoundBox.Width, currentSprite.BoundBox.Height);

                    bounds.Offset(-currentSprite.HotSpot.X, -currentSprite.HotSpot.Y);
                    bounds.Offset(PositionSrc.Position);
                    if (meter.Bounds.IntersectsWith(bounds))
                    {
                        Draw(currentSprite, e.RenderContext, 5);
                        return;
                    }
                }
            }
            Draw(currentSprite, e.RenderContext, currentSprite.Layer + 1);
        }
Beispiel #8
0
        public void Draw(GameRenderEventArgs renderArgs, int screenPixelWidth)
        {
            if (_info.Parallax)
            {
                float trueOffset = OffsetX;

                int maxOffset = screenPixelWidth - Game.CurrentGame.PixelsAcross;
                if (OffsetX >= 0 && OffsetX <= maxOffset)
                {
                    float offsetRatio      = OffsetX / maxOffset;
                    int   parallaxDistance = (_info.Tiles.Width * _info.Tiles.Tileset.TileSize) - Game.CurrentGame.PixelsAcross;
                    trueOffset = offsetRatio * parallaxDistance;
                }

                this.Draw(renderArgs.RenderContext, -trueOffset, 0);
            }
            else
            {
                this.Draw(renderArgs.RenderContext,
                          (_locationOffsetX - OffsetX), (_locationOffsetY - OffsetY));
            }
        }
Beispiel #9
0
        // Executes one step (frame) of the game, both logic and drawing. The parameter is time
        // since last frame, but it isn't actually used except in the tick event. No one uses it
        // there either.
        private bool Step(float dt)
        {
            CheckInput();

            GameTickEventArgs e = new GameTickEventArgs(dt);

            if (GameLogicTick != null)
            {
                GameLogicTick(e);                           // this one is for more basic operations
            }
            // render phase
            GameRenderEventArgs r = new GameRenderEventArgs(renderContext);

            GraphicsDevice.Clear(Microsoft.Xna.Framework.Color.Green);

            if (GameRenderBegin != null)
            {
                GameRenderBegin(r);
            }

            renderContext.SetOpacity(opacity);
            renderContext.Begin();

            if (GameRender != null)
            {
                GameRender(r);
            }

            renderContext.End();

            if (GameRenderEnd != null)
            {
                GameRenderEnd(r);
            }

            return(false);
        }
Beispiel #10
0
        protected override void GameRender(GameRenderEventArgs e)
        {
            if (drawFunc != null) drawFunc(e);

            base.GameRender(e);
        }
Beispiel #11
0
 private void DrawScreen(GameRenderEventArgs renderArgs)
 {
     _currentScreen.Draw(renderArgs, PlayerPos.Position);
 }
        private void Instance_GameRenderEnd(GameRenderEventArgs e)
        {
            GraphicsDevice.SetRenderTarget(null);
            masterSpriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, Engine.Instance.FilterState, null, null);
            GraphicsDevice.Clear(Color.Black);

            DrawMasterTargetToBatch();

            masterSpriteBatch.End();
            EndDraw();
        }
Beispiel #13
0
        public void Draw(GameRenderEventArgs renderArgs, PointF playerPos, float adj_x = 0, float adj_y = 0, float off_x = 0, float off_y = 0)
        {
            int width = Screen.PixelWidth;
            int height = Screen.PixelHeight;

            if (!isAutoscrolling)
            {
                OffsetX = OffsetY = 0;

                centerX = playerPos.X + adj_x;
                centerY = playerPos.Y + adj_y;

                if (centerX > Game.CurrentGame.PixelsAcross / 2)
                {
                    OffsetX = centerX - Game.CurrentGame.PixelsAcross / 2;
                    if (OffsetX > width - Game.CurrentGame.PixelsAcross)
                        OffsetX = width - Game.CurrentGame.PixelsAcross;
                }

                if (centerY > Game.CurrentGame.PixelsDown / 2)
                {
                    OffsetY = centerY - Game.CurrentGame.PixelsDown / 2;
                    if (OffsetY > height - Game.CurrentGame.PixelsDown)
                        OffsetY = height - Game.CurrentGame.PixelsDown;
                    if (OffsetY < 0) OffsetY = 0;
                }

                OffsetX += off_x;
                OffsetY += off_y;
            }

            foreach (var layer in this.layers)
            {
                layer.Draw(renderArgs, this.Screen.PixelWidth);
            }
        }
Beispiel #14
0
        void Instance_GameRender(GameRenderEventArgs e)
        {
            if (!Engine.Instance.DrawHitboxes) return;
            foreach (CollisionBox hitbox in hitboxes)
            {
                if (!enabledBoxes.Contains(hitbox.ID)) continue;

                RectangleF boundBox = hitbox.BoxAt(PositionSrc.Position);
                boundBox.Offset(-Parent.Screen.OffsetX, -Parent.Screen.OffsetY);

                if (rectTex == null)
                    rectTex = e.RenderContext.CreateColorResource(new MegaMan.Common.Color(1, 0.6f, 0, 0.7f));

                e.RenderContext.Draw(rectTex, 5, new Common.Geometry.Point((int)(boundBox.X), (int)(boundBox.Y)), new Common.Geometry.Rectangle(0, 0, (int)(boundBox.Width), (int)(boundBox.Height)));
            }
        }
 private void Instance_GameRenderBegin(GameRenderEventArgs e)
 {
     BeginDraw();
     GraphicsDevice.SetRenderTarget(masterRenderingTarget);
     GraphicsDevice.Clear(Color.Black);
 }
Beispiel #16
0
        // Executes one step (frame) of the game, both logic and drawing. The parameter is time
        // since last frame, but it isn't actually used except in the tick event. No one uses it
        // there either.
        private bool Step(float dt)
        {
            CheckInput();

            GameTickEventArgs e = new GameTickEventArgs(dt);

            if (GameLogicTick != null) GameLogicTick(e);    // this one is for more basic operations

            // render phase
            GameRenderEventArgs r = new GameRenderEventArgs(renderContext);

            GraphicsDevice.Clear(Microsoft.Xna.Framework.Color.Green);

            if (GameRenderBegin != null) GameRenderBegin(r);

            renderContext.SetOpacity(opacity);
            renderContext.Begin();

            if (GameRender != null) GameRender(r);

            renderContext.End();

            if (GameRenderEnd != null) GameRenderEnd(r);

            return false;
        }
Beispiel #17
0
 private void Instance_GameRenderBegin(GameRenderEventArgs e)
 {
     BeginDraw();
     GraphicsDevice.SetRenderTarget(masterRenderingTarget);
     GraphicsDevice.Clear(Color.Black);
 }
Beispiel #18
0
 private void DrawJoin(GameRenderEventArgs renderArgs)
 {
     _currentScreen.Draw(renderArgs, PlayerPos.Position, 0, 0, currentJoin.OffsetX, currentJoin.OffsetY);
     nextScreen.Draw(renderArgs, PlayerPos.Position, currentJoin.NextScreenX, currentJoin.NextScreenY, currentJoin.NextOffsetX, currentJoin.NextOffsetY);
 }
        public void Draw(GameRenderEventArgs renderArgs, int screenPixelWidth)
        {
            if (_info.Parallax)
            {
                float trueOffset = OffsetX;

                int maxOffset = screenPixelWidth - Game.CurrentGame.PixelsAcross;
                if (OffsetX >= 0 && OffsetX <= maxOffset)
                {
                    float offsetRatio = OffsetX / maxOffset;
                    int parallaxDistance = (_info.Tiles.Width * _info.Tiles.Tileset.TileSize) - Game.CurrentGame.PixelsAcross;
                    trueOffset = offsetRatio * parallaxDistance;
                }

                this.Draw(renderArgs.RenderContext, -trueOffset, 0);
            }
            else
            {
                this.Draw(renderArgs.RenderContext,
                    (_locationOffsetX - OffsetX), (_locationOffsetY - OffsetY));
            }
        }
Beispiel #20
0
 public void GameRender(GameRenderEventArgs e)
 {
     if (inGamePlay) Draw(e.RenderContext, positionX, positionY);
 }
 private void Instance_GameRenderEnd(GameRenderEventArgs e)
 {
     DrawMasterTargetToBatch();
     EndDraw();
 }
Beispiel #22
0
        protected virtual void GameRender(GameRenderEventArgs e)
        {
            foreach (var obj in objects.Values)
            {
                obj.Draw(e.RenderContext);
            }

            if (Draw != null) Draw(e);
        }