コード例 #1
0
ファイル: NCSprite.cs プロジェクト: Duccem/Motor_Grafico
 //constructor
 public NCSprite(int pX, int pY, int pAncho, int pAlto, string pImagen,
                 int pCuadros, int pAnimaciones, bool pActivo, bool pVisible,
                 Color pColor, int pID, int pCapa, TiposColisiones pColisiones) :
     base(pX, pY, pAncho, pAlto, pColisiones)
 {
     cuadros         = pCuadros;
     animaciones     = pAnimaciones;
     activo          = pActivo;
     visible         = pVisible;
     capa            = pCapa;
     ordena          = false;
     animacionActual = 0;
     cuadroActual    = 0;
     FH                 = false;
     FV                 = false;
     imagen             = new Bitmap(pImagen);
     typeAnim           = TipoAnmacion.sinAnimacion;
     dirAnim            = DirAnimacion.normal;
     velAnim            = 2;
     contAnim           = 0;
     usarCopia          = false;
     recorridoXc        = 0;
     recorridoYC        = 0;
     recorte            = new Bitmap(ancho, alto);
     isTransparente     = false;
     colorTransparencia = pColor;
 }
コード例 #2
0
ファイル: NCSprite.cs プロジェクト: Duccem/Motor_Grafico
        //Las animaciones pasan por aqui
        public void AvanzaAnimacion()
        {
            //verificamos si es sin animacion
            if (typeAnim == TipoAnmacion.sinAnimacion)
            {
                return;
            }

            if (typeAnim == TipoAnmacion.UnaVez)
            {
                if (cuadroActual >= cuadros)
                {
                    cuadroActual = -1;
                    typeAnim     = TipoAnmacion.sinAnimacion;
                }
                if (cuadroActual < 0)
                {
                    cuadroActual = 0;
                    typeAnim     = TipoAnmacion.sinAnimacion;
                }
            }
            if (typeAnim == TipoAnmacion.PingPong)
            {
                if (cuadroActual >= cuadros - 1)
                {
                    dirAnim = DirAnimacion.reversa;
                }
                if (cuadroActual == 0)
                {
                    dirAnim = DirAnimacion.normal;
                }
            }
            if (typeAnim == TipoAnmacion.Repite && contAnim >= 30 - velAnim)
            {
                if (cuadroActual >= cuadros - 1 && dirAnim == DirAnimacion.normal)
                {
                    cuadroActual = -1;
                }
                if (cuadroActual == 0 && dirAnim == DirAnimacion.reversa)
                {
                    cuadroActual = cuadros;
                }
            }
            contAnim += velAnim;
            if (contAnim >= 30)
            {
                cuadroActual += (int)dirAnim;
                contAnim      = 0;

                if (cuadroActual >= cuadros)
                {
                    cuadroActual = cuadros;
                }
                if (cuadroActual < 0)
                {
                    cuadroActual = 0;
                }
            }
        }
コード例 #3
0
ファイル: NCSprite.cs プロジェクト: FeDeJMendez/Motor2D
        private int radioC;             //Radio al cuadrado para evitar la raiz

        //Constructor
        public NCSprite(int PosX, int PosY, int Ancho, int Alto, string Imagen,
                        int Cuadros, int Animaciones, bool Activo, bool Visible)
        {
            posX        = PosX;
            posY        = PosY;;
            ancho       = Ancho;
            alto        = Alto;
            cuadros     = Cuadros;
            animaciones = Animaciones;
            activo      = Activo;
            visible     = Visible;

            animacionActual = 0;
            cuadroActual    = 0;

            imagen = new Bitmap(Imagen);                //Carga la imagen BMP o PNG con los cuadros

            flipHorizontal = false;
            flipVertical   = false;

            tAnimacion    = TipoAnimacion.SinAnimacion;
            dAnimacion    = DirAnimacion.Normal;
            velAnimacion  = 2;
            contAnimacion = 0;

            dX = 0;
            dY = 0;

            usarCopia   = false;
            recorridoXc = 0;
            recorridoYc = 0;
            recorte     = new Bitmap(ancho, alto);

            colisionable = false;
            colisionado  = false;

            xan = posX + ancho;
            yal = posY + alto;

            radioC = (ancho / 2) * (ancho / 2) + (alto / 2) * (alto / 2);
        }
コード例 #4
0
ファイル: NCSprite.cs プロジェクト: FeDeJMendez/Motor2D
        public void AvanzarAnimacion()
        {
            if (tAnimacion == TipoAnimacion.SinAnimacion)
            {
                return;
            }

            if (tAnimacion == TipoAnimacion.UnaVez)
            {
                if (cuadroActual >= cuadros)
                {
                    cuadroActual = cuadros - 1;                //La deja en el ultimo cuadro
                    tAnimacion   = TipoAnimacion.SinAnimacion; //La frena
                }
                if (cuadroActual < 0)
                {
                    cuadroActual = 0;                          //La deja en el primer cuadro
                    tAnimacion   = TipoAnimacion.SinAnimacion; //La frena
                }
            }

            if (tAnimacion == TipoAnimacion.PingPong)
            {
                if (cuadroActual >= cuadros - 1)
                {
                    dAnimacion = DirAnimacion.Reversa;
                }
                if (cuadroActual == 0)
                {
                    dAnimacion = DirAnimacion.Normal;
                }
            }

            if (tAnimacion == TipoAnimacion.Repite && contAnimacion >= 30 - velAnimacion)
            {
                if (cuadroActual >= cuadros - 1 && dAnimacion == DirAnimacion.Normal)
                {
                    cuadroActual = -1;
                }
                if (cuadroActual == 0 && dAnimacion == DirAnimacion.Reversa)
                {
                    cuadroActual = cuadros;
                }
            }

            //Avance del cuadro de animacion
            contAnimacion += velAnimacion;
            if (contAnimacion >= 30)                //El programa procesa aprox. 30 img por seg.
            {
                cuadroActual += (int)dAnimacion;
                contAnimacion = 0;

                if (cuadroActual >= cuadros)
                {
                    cuadroActual = cuadros - 1;
                }
                if (cuadroActual < 0)
                {
                    cuadroActual = 0;
                }
            }
        }