Ejemplo n.º 1
0
        public static Animation CreateAnimation(Creature.CharacterMode mode,
                                                Orientation orient,
                                                SpriteSheet texture,
                                                float frameHz,
                                                int frameWidth,
                                                int frameHeight,
                                                int row,
                                                List <int> cols)
        {
            List <Point> frames  = new List <Point>();
            int          numCols = texture.Width / frameWidth;

            if (cols.Count == 0)
            {
                for (int i = 0; i < numCols; i++)
                {
                    frames.Add(new Point(i, row));
                }
            }
            else
            {
                frames.AddRange(cols.Select(c => new Point(c, row)));
            }

            return(new Animation(GameState.Game.GraphicsDevice, texture, mode.ToString() + OrientationStrings[(int)orient], frameWidth, frameHeight, frames, true, Color.White, frameHz, (float)frameWidth / 35.0f, (float)frameHeight / 35.0f, false));
        }
Ejemplo n.º 2
0
 public List <Animation> GetAnimations(Creature.CharacterMode mode)
 {
     return
         (OrientationStrings.Where((t, i) => HasAnimation(mode, (Orientation)i))
          .Select(t => Animations[mode.ToString() + t])
          .ToList());
 }
Ejemplo n.º 3
0
 public Animation GetAnimation(Creature.CharacterMode mode, Orientation orient)
 {
     if (HasAnimation(mode, orient))
     {
         return(Animations[mode.ToString() + OrientationStrings[(int)orient]]);
     }
     else
     {
         return(null);
     }
 }
Ejemplo n.º 4
0
        public void AddAnimation(Creature.CharacterMode mode,
                                 Orientation orient,
                                 SpriteSheet texture,
                                 float frameHz,
                                 int frameWidth,
                                 int frameHeight,
                                 int row,
                                 params int[] cols)
        {
            List <int> ints = new List <int>();

            ints.AddRange(cols);
            Animation animation = CreateAnimation(mode, orient, texture, frameHz, frameWidth, frameHeight, row, ints);

            Animations[mode.ToString() + OrientationStrings[(int)orient]] = animation;
            animation.Play();
        }
Ejemplo n.º 5
0
 public static CompositeAnimation CreateCompositeAnimation(Creature.CharacterMode mode,
                                                           Orientation orient,
                                                           string composite,
                                                           float frameHz,
                                                           List <SpriteSheet> layers,
                                                           List <Color> tints,
                                                           params int[][] frames
                                                           )
 {
     return(new CompositeAnimation(composite, layers, tints, frames)
     {
         FrameHZ = frameHz,
         Name = mode.ToString() + OrientationStrings[(int)orient],
         Loops = true,
         CurrentFrame = 0
     });
 }
Ejemplo n.º 6
0
 public bool HasAnimation(Creature.CharacterMode mode, Orientation orient)
 {
     return(Animations.ContainsKey(mode.ToString() + OrientationStrings[(int)orient]));
 }