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