// Para cuando deba moverse solo, p.ej. saltando public new void Mover(Mapa m) { if (saltando) { // Calculo las siguientes posiciones y veo si son validas short xProxMov = (short)(x + incrXSalto); short yProxMov = (short)(y + pasosSaltoArriba[fotogramaMvto]); bool subiendoSalto = (pasosSaltoArriba[fotogramaMvto] < 0); // Si todavía se puede mover, avanzo if (m.EsPosibleMover( xProxMov, yProxMov + alto - 2, xProxMov + ancho, yProxMov + alto) || subiendoSalto) { x = xProxMov; y = yProxMov; SiguienteFotograma(); } // Y si no, quizá esté cayendo else { saltando = false; cayendo = true; } fotogramaMvto++; if (fotogramaMvto >= cantidadMovimientoSalto) { saltando = false; cayendo = true; } } else if (cayendo) { if (m.EsPosibleMover( x, y + incrY + alto - 4, x + ancho, y + incrY + alto)) { y += incrY; } else { cayendo = false; } } }
// Métodos de movimiento public void MoverDerecha(Mapa m) { if (saltando || cayendo) { return; // No debe moverse mientras salta } CambiarDireccion(DERECHA); if (m.EsPosibleMover(x + incrX, y + alto - 4, x + ancho + incrX, y + alto)) { x += incrX; SiguienteFotograma(); } cayendo = true; }
public void MoverIzquierda(Mapa m) { if (saltando || cayendo) { return; // No debe moverse mientras salta } CambiarDireccion(IZQUIERDA); if (m.EsPosibleMover(x - incrX, y + alto - 4, x + ancho - incrX, y + alto)) { x -= incrX; SiguienteFotograma(); } cayendo = true; }
public void MoverIzquierda( Mapa m ) { if (saltando || cayendo) return; // No debe moverse mientras salta CambiarDireccion(IZQUIERDA); if (m.EsPosibleMover(x - incrX, y + alto - 4, x + ancho - incrX, y + alto)) { x -= incrX; SiguienteFotograma(); } cayendo = true; }
// Métodos de movimiento public void MoverDerecha( Mapa m ) { if (saltando || cayendo) return; // No debe moverse mientras salta CambiarDireccion(DERECHA); if (m.EsPosibleMover(x + incrX, y + alto - 4, x + ancho + incrX, y + alto)) { x += incrX; SiguienteFotograma(); } cayendo = true; }
// Para cuando deba moverse solo, p.ej. saltando public new void Mover(Mapa m) { if (saltando) { // Calculo las siguientes posiciones y veo si son validas short xProxMov = (short)(x + incrXSalto); short yProxMov = (short)(y + pasosSaltoArriba[fotogramaMvto]); bool subiendoSalto = (pasosSaltoArriba[fotogramaMvto] < 0); // Si todavía se puede mover, avanzo if (m.EsPosibleMover( xProxMov, yProxMov + alto - 2, xProxMov + ancho, yProxMov + alto) || subiendoSalto) { x = xProxMov; y = yProxMov; SiguienteFotograma(); } // Y si no, quizá esté cayendo else { saltando = false; cayendo = true; } fotogramaMvto++; if (fotogramaMvto >= cantidadMovimientoSalto) { saltando = false; cayendo = true; } } else if (cayendo) { if (m.EsPosibleMover( x, y + incrY + alto - 4, x + ancho, y + incrY + alto)) { y += incrY; } else cayendo = false; } }