⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 animationcontroller.cs

📁 非常优秀的棋牌类游戏源码包含AI及机器的难度调节算法人工智能非常经典
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace SceneryComponent.Components.Animation
{
    /// <summary>
    /// Controlador de animaci髇
    /// </summary>
    public class AnimationController
    {
        // Diccionario de animaciones por 韓dice
        private readonly Dictionary<int, AnimationBase> m_AnimationList = new Dictionary<int, AnimationBase>();

        /// <summary>
        /// Obtiene la lista de animaciones
        /// </summary>
        public AnimationBase[] AnimationList
        {
            get
            {
                List<AnimationBase> list = new List<AnimationBase>(m_AnimationList.Values);

                return list.ToArray();
            }
        }

        /// <summary>
        /// Constructor
        /// </summary>
        public AnimationController()
        {

        }

        /// <summary>
        /// A馻de una animaci髇 al controlador
        /// </summary>
        /// <param name="animation">Animaci髇</param>
        public void Add(AnimationBase animation)
        {
            if (animation != null)
            {
                if (!m_AnimationList.ContainsKey(animation.Index))
                {
                    m_AnimationList.Add(animation.Index, animation);
                }
            }
        }
        /// <summary>
        /// Elimina una animaci髇 del controlador
        /// </summary>
        /// <param name="animation">Animaci髇</param>
        public void Remove(AnimationBase animation)
        {
            if (animation != null)
            {
                if (m_AnimationList.ContainsKey(animation.Index))
                {
                    m_AnimationList.Remove(animation.Index);
                }
            }
        }
        /// <summary>
        /// Actualiza 馻 informaci髇 del controlador
        /// </summary>
        /// <param name="gameTime">Tiempo de juego</param>
        public void Update(GameTime gameTime)
        {
            foreach (AnimationBase animation in m_AnimationList.Values)
            {
                // Actualizar todos los elementos de la colecci髇 de animaciones
                animation.Update(gameTime);
            }
        }
        /// <summary>
        /// Obtiene la transformaci髇 parcial del bone con el 韓dice especificado
        /// </summary>
        /// <param name="index">Indice de bone</param>
        /// <returns>Devuelve la transformaci髇 parcial del bone con el 韓dice especificado</returns>
        public Matrix GetTransform(int index)
        {
            if (m_AnimationList.ContainsKey(index))
            {
                // Si hay animaci髇 espec韋ica del 韓dice se devuelve
                return m_AnimationList[index].Transform;
            }

            // Por defecto se devuelve transformaci髇 identidad
            return Matrix.Identity;
        }
        /// <summary>
        /// Obtiene la transformaci髇 parcial del bone especificado
        /// </summary>
        /// <param name="bone">Bone</param>
        /// <returns>Devuelve la transformaci髇 parcial del bone especificado</returns>
        public Matrix GetTransform(ModelBone bone)
        {
            return GetTransform(bone.Index);
        }
        /// <summary>
        /// Obtiene la transformaci髇 final del bone especificado
        /// </summary>
        /// <param name="bone">Bone</param>
        /// <param name="parentTransform">Matriz de transformaci髇 del padre</param>
        /// <returns>Devuelve la transformaci髇 final del bone especificado</returns>
        /// <remarks>S髄o es necesario especificar la matriz del padre cuando se est

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -