예제 #1
0
        static void Main(string[] args)
        {
            //A classe animal é uma abstração de algo do mundo real , ou seja , a classe abstrata consegue receber qualquer tipo de animal de estimação , porem se eu tentar por exemplo associar um animal selvagem
            // não estaria de acordo com o  a realidade
            AnimalDomestico animal = new Gato("Anakin");// Associando a classe concreta ou seja a implementação de um determinado animal , observa-se que não é possivel instanciar um lobo pois ele é um animal selvagem

            animal.Beber("Água");
            animal = new Cachorro("Kako");// Novamente associando a classe concreta ou seja a implementação de um determinado animal
            animal.Beber("Agua");

            /// Quando se instancia uma interface você garante o uso somente de sua implementação , cachorro e gato tem comportamento distintos ,porem tambem tem comportamentos semelhantes
            /// assim independente da instancia a ação sera executada
            IComportamentoPadrao animalComportamentoPadrao = new Cachorro("Nina");

            animalComportamentoPadrao.Brincar(); // Cachorros sabem brincar
            //Mudando a instancia de animalComportamentoPadrao para ser um gato inicialmente erá um cachorro
            animalComportamentoPadrao = new Gato("Apolo");
            animalComportamentoPadrao.Brincar();                              // Gatos assim como cachorros sabem brincar.

            IComportamento comportamentoGenerico = animalComportamentoPadrao; /// interface em de nivel mais generico possivel como a interface comportamento não tem nada implementado para usar os metodos de classes derivadas seria necessario uma conversão;

            ((IComportamentoPadrao)comportamentoGenerico).Brincar();
            comportamentoGenerico = animalComportamentoPadrao;
            //((IComportamentoCanino)comportamentoGenerico).Latir(); /// essa linha soltaria um erro pois na é a instancia de um gato e o gato não late

            AnimalDomestico animalA = new Cachorro("Kako");//Valido
            //animalA = new Lobo(); invalido pois animal selvagem não é um animal domestico
            Animal AnimalGenerico = new Cachorro("KaKo");

            AnimalGenerico = new Gato("Apolo");
            AnimalGenerico = new Onca();
            AnimalGenerico = new Lobo();
            //Resumo
            //Quanto mais generico for sua abstração menos metodos estaram disponiveis
        }
예제 #2
0
    void Awake()
    {
        barraCooldown = GameObject.Find("Jabuti Cooldown").GetComponent <Image> ();

        player      = (PlayerController)GetComponent(typeof(PlayerController));
        oncaScript  = (Onca)GetComponent(typeof(Onca));
        shieldAtivo = false;
        canTurtle   = true;

        turtleTime = 8;
    }
예제 #3
0
    void Awake()         //Acontece quando o prefab é "acordado"
    {
        podeExecutar = true;
        vidas        = 5;
        almas        = 0;

        aguiaScript     = (Aguia)GetComponent(typeof(Aguia));
        oncaScript      = (Onca)GetComponent(typeof(Onca));
        tartarugaScript = (Tartaruga)GetComponent(typeof(Tartaruga));

        rb        = GetComponent <Rigidbody2D>(); //Encontra o componente Rigidbody do jogador.
        an        = GetComponentInChildren <Animator>();
        cam       = Camera.main.GetComponent <CamFollow>();
        canMove   = true;
        moveBlock = false;
        canShoot  = true;

        facingRight = true;

        force = 1500;

        groundCheckSize = new Vector2(0.4f, 0.3f);

        passosEv = FMODUnity.RuntimeManager.CreateInstance(somPassos);
        passosEv.getParameter("Andando", out andandoParam);
        passosEv.getParameter("Terreno", out terrenoParam);
        passosEv.start();

        Instantiate(gm);
        StartCoroutine(gm.habilidadesIniciais());

        Time.timeScale = 1;

        hitPlayed  = true;
        vulneravel = true;
    }
예제 #4
0
 void Awake()
 {
     Instance = this;
 }