Exemple #1
0
        private void HandleInput(GameTime gameTime)
        {
            var rand = new Random();
            SkillRate += gameTime.ElapsedGameTime;
            var padState = GamePad.GetState(PadIndex);
            if (padState.ThumbSticks.Right !=Vector2.Zero && Energy >= 10 && SkillRate > FireballRate)
            {
                SkillRate = TimeSpan.Zero;
                Energy -= 10;
                var direction = Vector2.Normalize(padState.ThumbSticks.Right);
                direction.Y = -direction.Y;

                var fireEventArgs = new GunnerFireEventArgs (direction);

                var firePitch = MathHelper.Lerp ((float)Moxy.Random.NextDouble(), -0.5f, 0.6f);
                var fireVolume = MathHelper.Lerp ((float)Moxy.Random.NextDouble (), 0.7f, 0.8f);
                fireSound.Play (fireVolume, firePitch, 0f);

                if (OnCastFireball != null)
                    OnCastFireball(this, fireEventArgs);

                //if (!fireEventArgs.Handled)
                    //fireballEmitter.GenerateParticles(gameTime, direction);
            }
        }
Exemple #2
0
 void Target_OnCastFireball(object sender, GunnerFireEventArgs e)
 {
     var rads = Math.Atan2(e.FireVector.Y, e.FireVector.X);
     var second = new Vector2((float)Math.Cos(rads + MathHelper.PiOver4/3), (float)Math.Sin(rads + MathHelper.PiOver4/3));
     var third = new Vector2((float)Math.Cos(rads - MathHelper.PiOver4/3), (float)Math.Sin(rads - MathHelper.PiOver4/3));
     e.Handled = true;
     Target.FireballEmitter.GenerateParticles(Moxy.GameTime, e.FireVector);
     Target.FireballEmitter.GenerateParticles(Moxy.GameTime, second);
     Target.FireballEmitter.GenerateParticles(Moxy.GameTime, third);
 }