Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • Testat_8
  • Testat_7
  • Testat_6
    928d0b85 · ahhh ·
  • Testat_5
    93e469cf · made it move again ·
  • Testat_4
  • Testat_1
    77a43719 · added rotation to knights ·
    1. Machen Sie sich mit der Engine vertraut. Lernen Sie das User-Interface kennen & finden Sie eine geeignete IDE (Empfehlung: Visual Studio; bzw. Visual Studio Code, falls Sie mit einem Mac arbeiten). Laden Sie das Projekt aus dem eLearning herunter und orientieren Sie sich im Projekt. (0 Punkte)
    
    2. Sorgen Sie dafür, dass die Schilder über den Türmen sich rotieren. (8 Punkte)
    
    3. Instanziieren Sie vor dem Turm des Spielers ein Ritter-Prefab jedes Mal, wenn der Spieler auf einen der Türme klickt. Nutzen Sie hierfür das OnMouseDown Callback der Unity MonoBehaviour Klasse. Achten Sie darauf alle Komponenten im Editor richtig einzustellen. (24 Punkte)
  • Testat_2
    99f6bf9b · solved testat 2 ·
    1. Sorgen Sie dafür, dass jeder Ritter, der vom Spieler instanziiert wurde, sich auf den Turm des Gegners zubewegt. Benutzen sie eine Initialisierung-Funktion, um nach dem Instanziieren Bewegungsrichtung oder Zielposition zu übergeben. Hinweis: Mit gameObject.GetComponent<KLASSENNAME>() können Sie sich einzelne Komponenten von Objekten zurückgeben lassen.
    Hinweis 2: Um zu erkennen, ob ein Objekt sich dem Turm genähert hat oder mit ihm kollidiert, können Sie zum Beispiel das OnCollisionEnter (oder OnTriggerEnter) Callback benutzen. (12 Punkte)
    
    2. Sorgen Sie dafür, dass Ritter zerstört werden, wenn sie in die Nähe des gegnerischen Turms kommen. Geben Sie dem Turm HP und sorgen Sie dafür, dass dem Turm 1 HP abgezogen wird, wenn ein Ritter in die Nähe kommt (bzw. mit dem Turm kollidiert). (12 Punkte)
    
    3. Implementieren Sie eine Log-Nachricht, wenn ein Turm 0 HP hat.
  • Testat_3
    1f3fc47e · solved testat 3 ·
    Dieses Testat widmet sich nun der gegnerischen KI. Darüber hinaus sollen Sie erste Refactorings am vorhandenen Code vornehmen, sodass eine sinnvolle Architektur entsteht.
    
    1. Da wir nun Anfangen uns mit KI zu befassen, brauchen wir Informationen über Einheiten, mit denen die KI arbeiten kann. Erstellen Sie eine Klasse „UnitData“, die Angriffs-, Geschwindigkeits-, Rüstungs- und Kosten-Werte einer Einheit enthält. Benutzen sie dafür eine Nicht-Mono-Behaviour Klasse mit einem SerializeField / Readonly Pattern.
    
    Das MonoBehaviour auf der Einheit soll dann die UnitData als öffentliches Member-Feld implementieren. (6 Punkte)
    
    2. Schreiben Sie eine KI-Klasse, die den Einheiten-Spawn des Gegners kontrolliert. Benutzen Sie einen Tick-Basierten Ansatz, um der KI Geld zukommen zu lassen. Jedes Mal, wenn die KI über genug Geld verfügt, soll sie eine Einheit spawnen. Das Geld, das für eine Einheit benötig wird, soll in der entsprechenden UnitData gespeichert sein und über den Editor einstellbar sein. Spieler-Einheiten sollen sich auf den Turm des Gegners zubewegen und umgekehrt.  Hinweis: Benutzen Sie Layers und die Kollisions-Matrix des Unity-Editor, um vorerst zu verhindern, dass Einheiten miteinander kollidieren. (16 Punkte)
    
    3. Da es nun Einheiten zwei verschiedener Akteure gibt, müssen Sie die Einheiten diesen Akteuren zuordnen. Erstellen sie eine ActorData Klasse, die sie der KI und dem Spieler-Spawn-Skript zuweisen. Ein Akteur soll vorerst lediglich über einen Namen verfügen. Bei Erstellung einer Einheit, soll der Einheit eine Referenz auf den Akteur, der sie erstellt hat, übergeben werden. Benutzen sie diese Referenz, um zu garantieren, dass eigene Einheiten nicht durch den Turm ihres Akteurs zerstört werden. (10 Punkte)