public void patearPelota(Oveja ov) { ultimoTirador = ov.Equipo; debx = 3 * ov.debx; deby = 3 * ov.deby; swpropio.Set(); }
public Mapa() { for (int i = 0; i < 10; i++) { switchesovs1[i] = new ManualResetEvent(false); switchesovs2[i] = new ManualResetEvent(false); } pelota = new Pelota(25, 15, equipo.neutro); //Solo existe una pelota pelota.moverseAutonomo += pelotaEnMovimiento; pelota.puedeMover += pelotaPuedeMoverse; Cancha[25, 15] = pelota; Jugador1 = new Jugador(5, 15, equipo.azul, switchesovs1); Jugador1.puedeMover += puedeMoverse; Cancha[5, 15] = Jugador1; Jugador2 = new Jugador(45, 15, equipo.rojo, switchesovs2); Jugador2.puedeMover += puedeMoverse; Cancha[45, 15] = Jugador2; for (int i = 0; i < 8; i++) { ovejas1[i] = new Oveja(10, i + 12, equipo.azul, switchesovs1[i]); //Usa thread J1movio += ovejas1[i].adqComp; //Todas las ovejas están atentas al movimiento del jugador. Le pasamos el jugador para que analize ovejas1[i].moverseAutonomo += ovejaEnMovimiento; //Gatillado este evento, el mapa mueve la oveja, la oveja desacelera en su método ovejas1[i].puedeMover += ovejaPuedeMoverse; ovejas1[i].patearPelota += pelota.patearPelota; pelota.endmov += ovejas1[i].pelotaTermino; Cancha[10, i + 12] = ovejas1[i]; } for (int i = 0; i < 8; i++) { ovejas2[i] = new Oveja(40, i + 12, equipo.rojo, switchesovs2[i]); //Usa thread J2movio += ovejas2[i].adqComp; ovejas2[i].moverseAutonomo += ovejaEnMovimiento; ovejas2[i].puedeMover += ovejaPuedeMoverse; ovejas2[i].patearPelota += pelota.patearPelota; pelota.endmov += ovejas2[i].pelotaTermino; Cancha[40, i + 12] = ovejas2[i]; } this.ovejas = new Oveja[ovejas1.Length + ovejas2.Length]; this.ovejas1.CopyTo(ovejas, 0); this.ovejas2.CopyTo(ovejas, ovejas2.Length); //Array de ovejas }
//Sigue en lock void ovejaEnMovimiento(Oveja ov) { ovejaEnMovimientoWPF(ov); }