/// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) { this.Exit(); } Objeto2D particula = new Objeto2D(Content.Load <Texture2D>("penis_borra")); particula.x = random.Next(Mouse.GetState().X - 5, Mouse.GetState().X + 5); particula.y = random.Next(Mouse.GetState().Y - 5, Mouse.GetState().Y + 5); particula.ScaleX = 0.4f; particula.ScaleY = 0.5f; particula.alpha = 0.5f; particula.color = Color.Lerp(Color.Lerp(Color.Yellow, Color.Red, (float)random.NextDouble()), Color.White, 0.4f); listaParticulas.Add(particula); Objeto2D particula2 = new Objeto2D(Content.Load <Texture2D>("penis_borra")); particula2.x = random.Next(400 - 5, 400 + 5); particula2.y = random.Next(400 - 5, 400 + 5); particula2.ScaleX = 0.4f; particula2.ScaleY = 0.5f; particula2.alpha = 0.5f; particula2.color = Color.Lerp(Color.Lerp(Color.Yellow, Color.Red, (float)random.NextDouble()), Color.White, 0.4f); listaParticulas.Add(particula2); for (int i = 0; i < listaParticulas.Count; i++) { listaParticulas[i].y -= 3; listaParticulas[i].alpha -= 0.01f; float posSoma = 0; int numSomados = 0; float posMedia = 0; for (int o = 0; o < listaParticulas.Count; o++) { if (distancia(new Vector2(listaParticulas[i].x, listaParticulas[i].y), new Vector2(listaParticulas[o].x, listaParticulas[o].y)) < 80) { posSoma += listaParticulas[o].x; numSomados++; } } if (numSomados > 0) { posMedia = posSoma / numSomados; listaParticulas[i].x = MathHelper.Lerp(listaParticulas[i].x, posMedia, 0.05f); } if (listaParticulas[i].alpha < 0.01f) { listaParticulas.Remove(listaParticulas[i]); } } base.Update(gameTime); }
public Boolean hitTestObject(Objeto2D objeto) { this.CalcularRetangulo(); objeto.CalcularRetangulo(); if (this.collisionBounds.Intersects(objeto.collisionBounds)) { return(true); } else { return(false); } }