/// <summary>Lässt das Spielfeld Spawnen</summary> /// <param name="_babySettings">Struct das alle Eigenschaften der Altersgruppe: Baby beinhaltet</param> /// <param name="_teenagerSettings">Struct das alle Eigenschaften der Altersgruppe: Jugendlich beinhaltet</param> /// <param name="_adultSettings">Struct das alle Eigenschaften der Altersgruppe: Erwachsen beinhaltet</param> /// <param name="_grandparents">Struct das alle Eigenschaften der Altersgruppe: Senior beinhaltet</param> /// <param name="_deadColor">Farbe die die Zelle haben soll wenn sie gestorben ist</param> /// <remarks>Startet das Spawnen des Spielfeldes, die Größe sowie die Position des Spielfeldes werden dabei im Unity Inspector bei dem Script eingestellt</remarks> public void CreateField(AgeSettings _babySettings, AgeSettings _teenagerSettings, AgeSettings _adultSettings, AgeSettings _grandpartensSettings, Color _deadColor) { //Werte für die StartPosition sowie Feldgröße zwischenspeichern Vector3 TempSpawnPos = m_StartPos; m_Field = new Cell[(int)m_FieldSize.x, (int)m_FieldSize.y]; //Das Spawnen des Spielfeldes starten angefangen in der linken oberen Ecke for (int x = 0; x < m_FieldSize.x; x++) { //Alle Zellen in Y Richtung Spawnen lassen for (int y = 0; y < m_FieldSize.y; y++) { //Zelle Spawnen lassen GameObject TempCell = Instantiate(m_CellPrefab, TempSpawnPos, Quaternion.identity) as GameObject; TempCell.name = string.Format("Cell x:{0}, y:{1}", x, y); //Sich das Zellen Script von der gespawnten Zelle holen und die Zelle dann gleich Initialisieren und somit Spiel bereit machen Cell TempCellScript = TempCell.GetComponent <Cell>(); if (!TempCellScript) { Debug.LogError("Die Zelle mit dem Namen: " + TempCell.name + " hat kein Zellen Script! Das erstellen des Grids wird beendet."); enabled = false; } TempCellScript.InitCell(this, new Vector2(x, y), _babySettings, _teenagerSettings, _adultSettings, _grandpartensSettings, _deadColor); m_Field[x, y] = TempCellScript; //Die Zelle dem Spielfeld zuweisen TempSpawnPos.y += (m_Field[0, y].CellHeight) * -1; //Die Position der nächsten Zelle in der Reihe zuweisen. Unter der aktuell gespawnten Zelle } TempSpawnPos.x += (m_Field[x, 0].CellWidth); //Eine Zelle nach rechts rutschen damit dort als nächstes allen Zellen in Y Richtung gespawnt werden TempSpawnPos.y = m_StartPos.y; //Start Richtung für das Spawnen wieder zurücksetzen damit wieder oben begonnen wird mit dem Spawnen } }
/// <summary>Lässt das Spielfeld Spawnen</summary> /// <param name="_startPos">Start der Spawnposition. Ausgangspunkt ist die erste Zelle in der oberen linke Reihe</param> /// <param name="_cellCount">Die Größe des Spielfeldes. Wie viele Zellen soll das Feld in X und Y Richtung haben</param> /// <param name="_babySettings">Struct das alle Eigenschaften der Altersgruppe: Baby beinhaltet</param> /// <param name="_teenagerSettings">Struct das alle Eigenschaften der Altersgruppe: Jugendlich beinhaltet</param> /// <param name="_adultSettings">Struct das alle Eigenschaften der Altersgruppe: Erwachsen beinhaltet</param> /// <param name="_grandparents">Struct das alle Eigenschaften der Altersgruppe: Senior beinhaltet</param> /// <param name="_deadColor">Farbe die die Zelle haben soll wenn sie gestorben ist</param> /// <remarks>Startet das Spawnen des Spielfeldes, die Größe sowie die Position des Spielfeldes werden dabei per Parameter übergeben</remarks> public void CreateField(Vector3 _startPos, Vector2 _cellCount, AgeSettings _babySettings, AgeSettings _teenagerSettings, AgeSettings _adultSettings, AgeSettings _grandpartensSettings, Color _deadColor) { //Werte für die StartPosition sowie Feldgröße zwischenspeichern m_StartPos = _startPos; m_FieldSize = _cellCount; //Das Spielfeld Spawnen Starten CreateField(_babySettings, _teenagerSettings, _adultSettings, _grandpartensSettings, _deadColor); }
/// <summary>Initialisiert die Zelle</summary> /// <param name="_gridManager">Das GridManager script das die Zelle managt</param> /// <param name="_cellPos">Die aktuelle Position(x, y) der Zelle in dem Feld aller Zellen</param> /// <param name="_babySettings">Struct das alle Eigenschaften der Altersgruppe: Baby beinhaltet</param> /// <param name="_teenagerSettings">Struct das alle Eigenschaften der Altersgruppe: Jugendlich beinhaltet</param> /// <param name="_adultSettings">Struct das alle Eigenschaften der Altersgruppe: Erwachsen beinhaltet</param> /// <param name="_grandparents">Struct das alle Eigenschaften der Altersgruppe: Senior beinhaltet</param> /// <param name="_deadColor">Farbe die die Zelle haben soll wenn sie gestorben ist</param> /// <remarks>Gibt der Zelle alle wichtigen Eigenschaften die sie beschreibt und Initialisiert diese dann</remarks> public void InitCell(GridManager _gridManager, Vector2 _cellPos, AgeSettings _babySettings, AgeSettings _teenagerSettings, AgeSettings _adultSettings, AgeSettings _grandparents, Color _deadColor) { //Alle Eigenschaften der Zelle in die Variablen speichern m_GridManager = _gridManager; m_CellPos = _cellPos; m_Baby = _babySettings; m_Teenager = _teenagerSettings; m_Adult = _adultSettings; m_Grandparents = _grandparents; m_DeadColor = _deadColor; //Den Zellen Zustand auf "gestorben" setzen und somit die Zelle als initialisiert kennzeichnen SetCellState(STATES.DEAD); }