// 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); } } }
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); } }
void OnTriggerStay2D(Collider2D other) { SpielerController controller = other.GetComponent <SpielerController>(); if (controller != null) { controller.ChangeHealth(-1); } }
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(); }
void OnTriggerEnter2D(Collider2D other) { SpielerController controller = other.GetComponent <SpielerController>(); if (controller != null) { if (controller.health < controller.maxHealth) { controller.ChangeHealth(1); Destroy(gameObject); } } }
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; } } } }