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); }
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; } } }