/// <summary> /// Verifica colisções com outros lixos. /// </summary> /// <returns><c>true</c>, se houve colisão, <c>false</c> caso contrário.</returns> /// <param name="outro">Outro.</param> /// <param name="mesmoTipo">Mesmo tipo.</param> public static bool VerificaColisoes(out Lixo outro, out bool mesmoTipo) { foreach (var lixo in lixosNoChao) { if (ativo != lixo && ativo.IsCollidedWith(lixo)) { mesmoTipo = (ativo.tipo == lixo.tipo); outro = lixo; return(true); } } mesmoTipo = false; outro = null; return(false); }
/// <summary> /// Joga um lixo no chão /// </summary> public static void CriaLixo() { int altura = rand.Next(300, 500); int largura = rand.Next(50, 700); int aleatorio = rand.Next(); Lixo lixo; if (aleatorio % 2 == 0) { lixo = new Lixo(TexturaLixo.Metal, new Vector2(largura, altura), TipoDeLixo.Metal); } else { lixo = new Lixo(TexturaLixo.Papel, new Vector2(largura, altura), TipoDeLixo.Papel); } bool ok = true; foreach (Lixo item in lixosNoChao) { if (lixo.IsCollidedWith(item)) { ok = false; break; } } if (ok) { lixosNoChao.Add(lixo); } else { CriaLixo(); } }