コード例 #1
0
        private static void ScaleOnChangeValue(DependencyObject source, DependencyPropertyChangedEventArgs e)
        {
            if (e != null)
            {
                CharacterView instance = source as CharacterView;

                if (instance._actor != null)
                {
                    float sx = instance._actor.GetScale().X;
                    float sy = instance._actor.GetScale().Y;

                    float oldScale = (float)Math.Round((float)e.OldValue);
                    float newScale = (float)Math.Round((float)e.NewValue);

                    instance.CheckScale(newScale, oldScale);
                }
            }
        }
コード例 #2
0
        private static void ActorOnChangeValue(DependencyObject source, DependencyPropertyChangedEventArgs e)
        {
            if (e != null)
            {
                CharacterView instance = source as CharacterView;
                String        actor    = (string)e.NewValue;
                instance._frames       = new List <string>();
                instance._baseOffset   = new Position();
                instance._shadowOffset = new Position();
                instance._position     = new Position();

                if (string.IsNullOrEmpty(actor) == false)
                {
                    if (instance._actor != null)
                    {
                        GameManager.GetInstance().RemoveEntity(instance._actor);
                    }

                    instance._position.X = 400;
                    instance._position.Y = 200;

                    if (instance._entities.ContainsKey(actor) == false)
                    {
                        if (instance._fusionEngineASM != null)
                        {
                            var type = instance._fusionEngineASM.GetType("FusionEngine." + actor);

                            Entity entity = (Entity)Activator.CreateInstance(type);
                            entity.SetAnimationType(FusionEngine.Animation.Type.NONE);
                            entity.SetAnimationState(FusionEngine.Animation.State.STANCE);

                            instance._entities.TryAdd(actor, entity);
                            GameManager.GetInstance().GetRenderManager().AddEntity(entity);
                            instance._actor = entity;
                        }
                    }
                    else
                    {
                        instance._actor = instance._entities[actor];
                        instance._actor.SetAnimationState(FusionEngine.Animation.State.STANCE);
                        GameManager.GetInstance().GetRenderManager().AddEntity(instance._actor);
                    }

                    instance._baseOffset.X   = (int)instance._actor.GetBaseOffsetX();
                    instance._baseOffset.Y   = (int)instance._actor.GetBaseOffsetY();
                    instance._shadowOffset.X = (int)instance._actor.GetCurrentSprite().GetShadowOffsetX();
                    instance._shadowOffset.Y = (int)instance._actor.GetCurrentSprite().GetShadowOffsetY();
                }

                instance.Frames       = instance._frames;
                instance.BaseOffset   = instance._baseOffset;
                instance.Position     = instance._position;
                instance.ShadowOffset = instance._shadowOffset;

                if (instance._actor != null)
                {
                    instance._actor.SetPostion(instance.Position.X, 0, instance.Position.Y);
                    instance._actor.SetScale(instance._actor.GetBaseScale().X - 1, instance._actor.GetBaseScale().Y - 1);
                    instance.CheckScale(instance.Scale, 0);

                    DependencyPropertyChangedEventArgs args = new DependencyPropertyChangedEventArgs(AnimationProperty, null, "STANCE");
                    AnimationOnChangeValue(source, args);
                }
            }
        }