示例#1
0
        protected void draw_hud(SpriteBatch sprite_batch)
        {
            sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
            if (Hit_Spark != null)
            {
                Hit_Spark.draw(sprite_batch);
            }
            Vector2 number_vector = (Layer_3_Shake + Platform_1_Shake + Platform_2_Shake) * 0.5f + Pan_Vector;

            foreach (var number in HitNumbers)
            {
                number.draw(sprite_batch, new Vector2((int)number_vector.X, (int)number_vector.Y));
            }
            sprite_batch.End();
            if (HUD != null)
            {
                HUD.draw(sprite_batch, Layer_5_Shake);
            }
            sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
            if (Miss_Spark != null)
            {
                Miss_Spark.draw(sprite_batch, Pan_Vector);
            }
            if (NoDamage_Spark != null)
            {
                NoDamage_Spark.draw(sprite_batch, Pan_Vector);
            }
            sprite_batch.End();
            if (Exp_Gauge != null)
            {
                sprite_batch.GraphicsDevice.ScissorRectangle = fix_rect_to_screen(Exp_Gauge.scissor_rect());
                if (sprite_batch.GraphicsDevice.ScissorRectangle.Width > 0 && sprite_batch.GraphicsDevice.ScissorRectangle.Width > 0)
                {
                    sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, null, Exp_Gauge.raster_state);
                    Exp_Gauge.draw(sprite_batch);
                    sprite_batch.End();
                }
            }
            Effect battle_shader = Global.effect_shader();

            if (Battler_1_Sprite != null)
            {
                Battler_1_Sprite.draw_fg_effects(sprite_batch, battle_shader, Pan_Vector);
            }
            if (Battler_2_Sprite != null)
            {
                Battler_2_Sprite.draw_fg_effects(sprite_batch, battle_shader, Pan_Vector);
            }

            draw_skill_gain_popup(sprite_batch);
            draw_wlvl_popup(sprite_batch);
            draw_wbreak_popup(sprite_batch);
        }
        protected void draw_animation_scene(SpriteBatch sprite_batch, GraphicsDevice device,
                                            RenderTarget2D final_render, RenderTarget2D temp_render, RenderTarget2D effect_render)
        {
            Effect reel_shader = Global.effect_shader();

            // Background
            sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
            Background.draw(sprite_batch);
            sprite_batch.End();
            // Spell Bg
            if (Battler != null)
            {
                Battler.draw_bg_effects(sprite_batch, reel_shader);
            }
            // Platform
            Platform.draw(sprite_batch);
            // Battler

            if (Battler != null)
            {
                BattleSpriteRenderer battler_renderer = new BattleSpriteRenderer(
                    false, Vector2.Zero, Vector2.Zero, Vector2.Zero);
                battler_renderer.draw(sprite_batch, device,
                                      new Tuple <Battler_Sprite, bool>(Battler, false), null,
                                      final_render, temp_render, effect_render);
            }

            sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);

            /*if (Battler != null) //Debug
             * {
             *  sprite_batch.End();
             *  Battler.draw_lower_effects(sprite_batch, reel_shader);
             *  Battler.draw_lower(sprite_batch, Vector2.Zero, reel_shader);
             *  Battler.draw(sprite_batch, Vector2.Zero, reel_shader);
             *  Battler.draw_upper(sprite_batch, Vector2.Zero, reel_shader);
             *  sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
             * }*/
            // Stats
            if (Message != null)
            {
                foreach (Class_Reel_Stat_Bars bar in Stat_Bars)
                {
                    bar.draw(sprite_batch);
                }
                foreach (TextSprite label in Stat_Labels)
                {
                    label.draw(sprite_batch);
                }
                foreach (TextSprite value in Stat_Values)
                {
                    value.draw(sprite_batch);
                }
                foreach (Icon_Sprite icon in Weapon_Icons)
                {
                    icon.draw(sprite_batch);
                }
                Name_Bg.draw(sprite_batch);
            }
            // Battler
            if (Battler != null)
            {
                sprite_batch.End();
                Battler.draw_upper_effects(sprite_batch, reel_shader);
                sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
            }
            // Name/Message
            if (Message != null)
            {
                Text_Bg.draw(sprite_batch);
                Name.draw(sprite_batch);
                sprite_batch.End();
                // Message
                Message.draw_background(sprite_batch);
                Message.draw_faces(sprite_batch);
                Message.draw_foreground(sprite_batch);

                sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
            }
            // Spell Fg
            if (Battler != null)
            {
                sprite_batch.End();
                Battler.draw_fg_effects(sprite_batch, reel_shader);
                sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
                White_Flash.draw(sprite_batch);
            }
            // Black Screen
            Black_Screen.draw(sprite_batch);
            Black_Bar1.draw(sprite_batch);
            Black_Bar2.draw(sprite_batch);
            sprite_batch.End();
        }