예제 #1
0
        public override void Update()
        {
            if (m_generateAura)
            {
                m_particleGenerator.Update();
            }
            if (m_generateSouls)
            {
                m_soulParticleGenerator.Generate();
                m_soulsToGive--;
                Game1.scoreDisplay.Value += 1;
                if (m_soulsToGive <= 0)
                {
                    Game1.scoreDisplay.Value = Game1.TotalScore;
                    m_generateSouls          = false;
                    m_actionManager.StartNew(m_jumpInMouth);
                }
            }

            m_soulParticles.Update();
            m_auraParticles.Update();

            m_physics.Update();
            m_sword.Update();
            m_cloud.Update();
            m_actionManager.Update();
            //throw new NotImplementedException();
        }
예제 #2
0
        protected void Push(Player player, float force)
        {
            m_physics.Throw(force, -5, (float)Program.Random.NextDouble());
            m_physics.GroundLevel = 0;
            m_totemInstance.Detach(this);

            if (m_below != null)
            {
                m_below.m_above = m_above;
            }
            if (m_above != null)
            {
                m_above.ChainPush();
                m_above.m_below = m_below;
            }

            float previous = Top;

            m_sprite.Origin = new Vector2(0.5f, 0.5f);
            float next = Top;

            m_transform.Position       += m_transform.ParentTransform.PositionGlobal;
            m_transform.PosY           -= next - previous;
            m_transform.ParentTransform = null;
            m_totemInstance             = null;
            m_below = null;
            m_above = null;

            if (Game1.old_kbs.IsKeyDown(Keys.Space))
            {
                m_transform.Scale = new Vector2(0);
                m_explosion.Generate(10, new Object[] { m_transform.PositionGlobal, player });
            }

            if (player.ComboCount >= Game1.scoreBorder.ScoreMultiplierMax)
            {
                m_generator.Generate(Game1.scoreBorder.ScoreMultiplierMax, new object[] { m_transform.PositionGlobal, player });
            }
            else
            {
                m_generator.Generate(player.ComboCount, new object[] { m_transform.PositionGlobal, player });
            }
        }
예제 #3
0
    // Update is called once per frame
    void Update()
    {
        float totalTime = Time.timeSinceLevelLoad;
        float deltaTime = Time.deltaTime;

        // first clean up all dead particles
        ParticleManager.DeactivateZombies();

        // then generate new ones
        Generator.Generate(deltaTime);

        // then compute a new state for all the existing ones
        foreach (Animator anim in _animators)
        {
            anim.Update(totalTime, deltaTime);
        }
    }
예제 #4
0
 public void Execute(GameTime gameTime)
 {
     _particleGenerator.Position = _mouse.GetMouseMapPosition(_gameModel.CurrentCamera);
     _particleGenerator.Generate(_gameModel);
 }