Esempio n. 1
0
 /// <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);
 }
Esempio n. 2
0
        /// <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();
            }
        }