示例#1
0
    protected override void Initialize(ICmd cmd)
    {
        base.Initialize(cmd);
        Cmd = cmd as CmdMove;

        FinalRotation.SetLookRotation(Owner.BlackBoard.DesiredDirection);
        StartRotation = Owner.Transform.rotation;
        Owner.BlackBoard.MotionType = GetMotionType();
        RotationProgress            = 0;
    }
        protected override XmlElement VCreateInheritedElement(XmlElement baseElement)
        {
            var textureElement = baseElement.OwnerDocument.CreateElement("Texture");

            textureElement.SetAttribute("resource", Texture);
            baseElement.AppendChild(textureElement);

            var velocityElement = baseElement.OwnerDocument.CreateElement("EmitterVelocity");

            velocityElement.SetAttribute("x", EmitterVelocity.X.ToString(CultureInfo.InvariantCulture));
            velocityElement.SetAttribute("y", EmitterVelocity.Y.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(velocityElement);

            var variationElement = baseElement.OwnerDocument.CreateElement("EmitterVariation");

            variationElement.SetAttribute("x", EmitterVariation.X.ToString(CultureInfo.InvariantCulture));
            variationElement.SetAttribute("y", EmitterVariation.Y.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(variationElement);

            var gravityElement = baseElement.OwnerDocument.CreateElement("Gravity");

            gravityElement.SetAttribute("x", Gravity.X.ToString(CultureInfo.InvariantCulture));
            gravityElement.SetAttribute("y", Gravity.Y.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(gravityElement);

            var particlesPerSecondElement = baseElement.OwnerDocument.CreateElement("ParticlesPerSecond");

            particlesPerSecondElement.SetAttribute("value", ParticlesPerSecond.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(particlesPerSecondElement);

            var particlesLifetimeElement = baseElement.OwnerDocument.CreateElement("ParticleLifetime");

            particlesLifetimeElement.SetAttribute("value", ParticleLifeTime.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(particlesLifetimeElement);

            var maxParticlesElement = baseElement.OwnerDocument.CreateElement("MaxParticles");

            maxParticlesElement.SetAttribute("value", MaxParticles.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(maxParticlesElement);

            XmlElement finalColorElement = baseElement.OwnerDocument.CreateElement("FinalColor");

            finalColorElement.SetAttribute("r", FinalColor.R.ToString(CultureInfo.InvariantCulture));
            finalColorElement.SetAttribute("g", FinalColor.G.ToString(CultureInfo.InvariantCulture));
            finalColorElement.SetAttribute("b", FinalColor.B.ToString(CultureInfo.InvariantCulture));
            finalColorElement.SetAttribute("a", FinalColor.A.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(finalColorElement);

            var colorEaseBiasElement = baseElement.OwnerDocument.CreateElement("ColorEaseBias");

            colorEaseBiasElement.SetAttribute("value", ColorChangePoint.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(colorEaseBiasElement);

            var initialScaleElement = baseElement.OwnerDocument.CreateElement("InitialParticleScale");

            initialScaleElement.SetAttribute("x", InitialScale.X.ToString(CultureInfo.InvariantCulture));
            initialScaleElement.SetAttribute("y", InitialScale.Y.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(initialScaleElement);

            var finalScaleElement = baseElement.OwnerDocument.CreateElement("FinalParticleScale");

            finalScaleElement.SetAttribute("x", FinalScale.X.ToString(CultureInfo.InvariantCulture));
            finalScaleElement.SetAttribute("y", FinalScale.Y.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(finalScaleElement);

            var scaleEaseBiasElement = baseElement.OwnerDocument.CreateElement("ScaleEaseBias");

            scaleEaseBiasElement.SetAttribute("value", ScaleChangePoint.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(scaleEaseBiasElement);

            var initialRotationElement = baseElement.OwnerDocument.CreateElement("InitialParticleRotation");

            initialRotationElement.SetAttribute("value", InitialRotation.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(initialRotationElement);

            var finalRotationElement = baseElement.OwnerDocument.CreateElement("FinalParticleRotation");

            finalRotationElement.SetAttribute("value", FinalRotation.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(finalRotationElement);

            var rotationEaseBiasElement = baseElement.OwnerDocument.CreateElement("RotationEaseBias");

            rotationEaseBiasElement.SetAttribute("value", RotationChangePoint.ToString(CultureInfo.InvariantCulture));
            baseElement.AppendChild(rotationEaseBiasElement);

            return(baseElement);
        }