Beispiel #1
0
        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);
        }
Beispiel #2
0
        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;
                }
            }
        }