Advertisement
Guest User

GameState with shitty comments

a guest
Jan 21st, 2020
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.30 KB | None | 0 0
  1. //Dodanie bibliotek
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. //Implementacja klasy "GameState", dziedziczenie po klasie "BaseState" oraz interfejsy.
  6. public class GameState : BaseState, IGameView, IMovement {
  7.     //Zmienna odpowiadająca za odczyt urządzeń wejśćia(klawisze, myszka)
  8.     private InputController.InputValues inputs;
  9.     //Metoda służąca do inicjacji stanu gry - zawiera w sobie wszelkie informacje, by przekazać sygnał z informacją do odpowiednich kontrolerów.
  10.     public override void InitState(GameController gameController)
  11.     {
  12.         //Odwołanie się do klasy bazowej "BaseState" i wykonanie wirtualnej metody, która najpierw wywołuje swoje oryginalne ciało, a potem jest nadpisywana
  13.         //przez 'override'
  14.         base.InitState(gameController);
  15.         //Połączenie interfejsów z klasą
  16.         #region LISTENERS
  17.         this.gameController.UIController.GameView.listener = this;
  18.         this.gameController.InputController.movementlistener = this;
  19.         #endregion
  20.         //Generowanie środowiska poprzez:
  21.         //1. Pokazanie UI gry
  22.         this.gameController.UIController.GameView.ShowView();
  23.         //2. Pokazanie terenu(muzeum)
  24.         this.gameController.SceneReferences.GameTerrain.SetActive(true);
  25.         //3. Generowanie zagadek
  26.         this.gameController.RiddleSpawner.GenerateRiddles();
  27.         //4. Inicjację głównych kontrolerów:
  28.         //a) obrotu i widzenia gracza
  29.         this.gameController.MovementController.Init(gameController);
  30.         //b) systemu podglądu zagadek
  31.         this.gameController.ExamineSystem.Init(gameController);
  32.         //c) poruszania się
  33.         this.gameController.GroundController.Init(gameController);
  34.     }
  35.     //Update - metoda odświeżająca się co klatkę(im więcej klatek, tym częstsze odświeżanie)
  36.     public override void UpdateState(GameController gameController)
  37.     {
  38.         //Odświażenie/odczytanie urządzeń wejścia
  39.         gameController.InputController.InputUpdate();
  40.         //Odświeżanie pozycji gracza - kierunek, kąt nachylenia głowy
  41.         gameController.MovementController.MovementUpdate(inputs);
  42.     }
  43.     //Deinit - służy do wyłączenia trybu GameState i (w tym przypadku) przejśćie do menu gry.
  44.     //Wywoływana jest po to, żeby wyczyścić to co zostało utworzone w trakcie gry, przywrócić podstawowy stan gry i wyłączyć zbędne elementy.
  45.     public override void DeinitState(GameController gameController)
  46.     {
  47.         //Odwołanie się do klasy bazowej "BaseState" i wykonanie wirtualnej metody, która najpierw wywołuje swoje oryginalne ciało, a potem jest nadpisywana
  48.         //przez 'override'.
  49.         base.DeinitState(gameController);
  50.         //Wypięcie interfejsów
  51.         #region LISTENERS
  52.         this.gameController.UIController.GameView.listener = this;
  53.         this.gameController.InputController.movementlistener = this;
  54.         #endregion
  55.         //Schowanie menu gry
  56.         this.gameController.UIController.GameView.HideView();
  57.         //Schowanie terenu
  58.         this.gameController.SceneReferences.MenuTerrain.SetActive(false);
  59.         //Wyjście do trybu MenuState
  60.         SetMenuState();
  61.     }
  62.  
  63.     public void SetMenuState()
  64.     {
  65.         //W tym miejscu maszyna stanów jest przepinana z obecnego trybu "GameState" na tryb "MenuState". Gra jest już po "Deinicie" i jeżeli gracz kliknie nową grę,
  66.         //to będzie mógł w nią zagraćbez żadnych śmieci/pozostałości po porzedniej rozgrywce.
  67.         gameController.ChangeState(new MenuState());        
  68.     }
  69.  
  70.     //Implementacja interfejsów
  71.     #region INTERFACES
  72.     public void UpdateAxis(InputController.InputValues inputValues)
  73.     {
  74.         inputs = inputValues;
  75.     }
  76.     #endregion
  77.  
  78.     //Dodatkowo:
  79.     /*  region/endregion - są to wbudowane w język dodatki służące do porządkowania kodu w mniejsze "klasy" bądź wydzielenie fragmentów kodu.
  80.      *  Jest to przydatne by trzymać się wielu wzorców projektowych.
  81.      *  
  82.      *  GameController <- klasa, która jest "mózgiem" gry - przetrzymuje w sobie referencje do wszystkiego, co potrzebne by obsłużyć grę.
  83.      *  gameController <- obiekt klasy, który przesłany w metodzie jako parametr pozwala na odwołanie się do tego "mózgu"
  84.      *
  85.      */
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement