public static void mover() { if (!muerto) { Personaje.posicion.X += Personaje.velocidad; KeyboardState ks = Keyboard.GetState(); if ((ks.IsKeyDown(Keys.Up) || ks.IsKeyDown(Keys.W)) && !deslizando && !saltando) { saltando = true; Sonidos.saltar(); } else if ((ks.IsKeyDown(Keys.Down) || ks.IsKeyDown(Keys.S)) && !saltando && !deslizando) { deslizando = true; Sonidos.deslizar(); } else if (!saltando && !deslizando) { Sonidos.andar(); } if (saltando) { saltar(); } if (deslizando) { deslizar(); } } }
public static void pintar(SpriteBatch sb) { if (iniciado) { sb.Draw(imagenRotura, new Rectangle((int)(800 * (1 - rotura)), 0, 800, 600), new Rectangle(0 + spriteActual * 30, 0, imagenRotura.Width - 10, imagenRotura.Height), Color.LightGray); if (Personaje.posicion.X > record) { if (!sonado) { sonado = true; Sonidos.romperCristales(); } sb.Draw(imagenRotura2, new Rectangle(300, 200, imagenRotura2.Width * 2, imagenRotura2.Height * 2), Color.White); sb.Draw(imagenRotura2, new Rectangle(400, 0, imagenRotura2.Width * 2, imagenRotura2.Height * 2), Color.White); sb.Draw(imagenRotura2, new Rectangle(150, 0, imagenRotura2.Width * 2, imagenRotura2.Height * 2), Color.White); sb.Draw(imagenRotura2, new Rectangle(500, 100, imagenRotura2.Width * 2, imagenRotura2.Height * 2), Color.White); } sb.Draw(imagenProgress, posBarraProgreso, Color.White); sb.Draw(imagenBarraProgreso, new Rectangle((int)posBarraProgreso.X + 28, (int)posBarraProgreso.Y + 8, (Personaje.posicion.X < record ? (int)(imagenBarraProgreso.Width * Personaje.posicion.X / record) : imagenBarraProgreso.Width), imagenBarraProgreso.Height), Color.GreenYellow); sb.DrawString(sf_record, ((int)Personaje.posicion.X).ToString() + " / " + record, pos_record, Color.RosyBrown); } else { sb.Draw(imagenInicio, new Rectangle(0, 0, 800, 500), Color.White); sb.DrawString(sf_titulo, "Record: " + record, pos_titulo, Color.White); sb.DrawString(sf_romper, "ROMPELO!", pos_rompelo, Color.Brown); sb.DrawString(sf_titulo, "Pulse [ESPACIO].", new Vector2(pos_rompelo.X + 25, pos_rompelo.Y + 100), Color.Brown); } }
//probabilidad public static void generar() { contador += (int)Personaje.velocidad; if (contador >= minimo) { contador = 0; Random rnd = new Random(); int random = rnd.Next(0, 11); while (random == randomAnterior) random = rnd.Next(0, 11); randomAnterior = random; if (random <= 7) { if (random < 2) pinchos.Add(new Pinchos(img_pinchos, new Vector2(Personaje.posicion.X + 800 - (new Random().Next(25, 50)), Personaje.YInicial - 50 + Personaje.tam.Y), true)); else { pinchos.Add(new Pinchos(img_pinchos, new Vector2(Personaje.posicion.X + 800 - (new Random().Next(25, 50)), Personaje.YInicial - 50 + Personaje.tam.Y), false)); } } else { Aparicion.pajaros.Add(new Pajaro { imagen = img_pajaro, posicion = new Vector2(Personaje.posicion.X + 800 - (new Random().Next(25, 50)), Personaje.YInicial - 260 + Personaje.tam.Y) }); Sonidos.pajaros(); } } /*contador += (int)Personaje.velocidad; if (contador >= minimo) { contador = 0; pinchos.Add(new Pinchos(img_pinchos, new Vector2(Personaje.posicion.X+800, Personaje.YInicial - 50 + Personaje.tam.Y), true)); }*/ }//A-B-A-B-A-B-A-B
void comprobarColisiones() { foreach (Pinchos p in Aparicion.pinchos) { if (new Rectangle((int)p.posicion.X, (int)p.posicion.Y, (int)p.tam.X, (int)p.tam.Y) .Intersects(new Rectangle((int)Personaje.posicion.X + 50, (int)Personaje.posicion.Y, (int)Personaje.tam.X - 90, (int)Personaje.tam.Y))) { if (p.rompible && Personaje.deslizando) { p.romper(); Sonidos.romperMadera(); } else { if (!p.roto) { Personaje.muerto = true; Personaje.morir(); } } } } foreach (Pajaro p in Aparicion.pajaros) { if (!Personaje.deslizando) { if (new Rectangle((int)p.posicion.X, (int)p.posicion.Y, (int)p.tam.X, (int)p.tam.Y) .Intersects(new Rectangle((int)Personaje.posicion.X + 50, (int)Personaje.posicion.Y, (int)Personaje.tam.X - 90, (int)Personaje.tam.Y))) { Personaje.muerto = true; Personaje.morir(); } } } }