Пример #1
0
    // Update is called once per frame
    void Update()
    {
        timeSinceLastSpell += Time.deltaTime;

        // Letzte Attacke länger als 2s her? Zurück in Idle Animation
        if (timeSinceLastSpell > 2.0f)
        {
            animator.SetFloat("Attack", 0.0f);
        }

        // Wartezeit um?
        if (timeSinceLastSpell > waitTime)
        {
            // Dann Attacke
            animator.SetFloat("Attack", 1.0f);

            // Nächste Wartezeit auswürfeln
            waitTime           = dice.Next(10, 30);
            timeSinceLastSpell = 0.0f;

            Debug.Log("Zauberbeginn");
            float           maxDistance = 0.0f;
            EnemyController farFarAway  = null;

            // Kollider innerhalb der Reichweite ermitteln
            Collider2D[] collidersInReach = Physics2D.OverlapCircleAll(rigidbody2D.position, magicRange, 1 << LayerMask.NameToLayer("Enemies"));
            Debug.Log(collidersInReach.Length + " minion gefunden ");
            foreach (Collider2D other in collidersInReach)
            {
                if (other.gameObject != player)
                {
                    // Enemy mit der größten Entfernung zum Magier suchen und merken
                    float distance = Vector2.Distance(currentPosition(), other.transform.transform.position);
                    if (distance > maxDistance)
                    {
                        Debug.Log("Teste " + other.gameObject.name + " mit Abstand " + distance);

                        EnemyController enemy = other.gameObject.GetComponent <EnemyController>();

                        if (enemy != null)
                        {
                            farFarAway  = enemy;
                            maxDistance = distance;
                        }
                    }
                }
            }

            // Position von Spieler und Gegener tauschen
            if (farFarAway != null)
            {
                Debug.Log("Tausche " + farFarAway + " mit Player.");

                SpielerController playControl = player.gameObject.GetComponent <SpielerController>();
                Vector2           temp        = playControl.currentPosition();
                playControl.setCurrentPosition(farFarAway.currentPosition());
                farFarAway.setCurrentPosition(temp);
            }
        }
    }
Пример #2
0
    void OnTriggerEnter2D(Collider2D other)
    {
        SpielerController player = other.gameObject.GetComponent <SpielerController>();

        if (player != null)
        {
            SpielerController.levelsPlayed++;

            Debug.Log("Spieler spielt sein " + SpielerController.levelsPlayed + " Level");

            int anzahlLevel       = SceneManager.sceneCountInBuildSettings;
            int indexCurrentScene = SceneManager.GetActiveScene().buildIndex;
            int indexNextScene    = indexCurrentScene;
            Debug.Log("Aktuelles Level: " + indexCurrentScene);
            Debug.Log("Anzahl Level: " + anzahlLevel);

            if (SpielerController.levelsPlayed == 5)
            {
                // Player hat 5 Level geschafft also gewonnen
                // Ab zur vorletzten Scene: Unserer "Win"-Scene
                indexNextScene = anzahlLevel - 2;
            }
            else
            {
                while (indexCurrentScene == indexNextScene)
                {
                    indexNextScene = myRandom.Next(2, anzahlLevel - 1);
                }
            }


            Debug.Log("Neues Level: " + indexNextScene);
            SceneManager.LoadScene(indexNextScene);
        }
    }
Пример #3
0
    void OnTriggerStay2D(Collider2D other)
    {
        SpielerController controller = other.GetComponent <SpielerController>();

        if (controller != null)
        {
            controller.ChangeHealth(-1);
        }
    }
Пример #4
0
    void OnCollisionEnter2D(Collision2D other)
    {
        SpielerController player = other.gameObject.GetComponent <SpielerController>();

        if (player != null)
        {
            direction   = -direction; // Wurde getroffen und legt den Rückwärtsgang ein
            moveAllowed = true;
        }
    }
    // Use this for initialization
    void Start()
    {
        anim = GetComponent <Animator>();
        spielerController = GetComponent <SpielerController>();

        lebensPunkte = maxLebensPunkte;
        //leben = PlayerPrefs.GetFloat("Leben");
        //lebensPunkte = PlayerPrefs.GetInt("LebensPunkte");

        endText.text = "";
        UpdateView();
    }
Пример #6
0
    void OnTriggerEnter2D(Collider2D other)
    {
        SpielerController controller = other.GetComponent <SpielerController>();

        if (controller != null)
        {
            if (controller.health < controller.maxHealth)
            {
                controller.ChangeHealth(1);
                Destroy(gameObject);
            }
        }
    }
Пример #7
0
    void OnTriggerStay2D(Collider2D other)
    {
        SpielerController player = other.gameObject.GetComponent <SpielerController>();

        if (player != null)
        {
            if (attacking)
            {
                player.ChangeHealth(-1);
            }
            else
            {
                if (triggerActivated && !steppedOn)
                {
                    steppedOn = true;
                    timeSinceLastActivated = 0.0f;
                }
            }
        }
    }