‫W tym wykładzie stworzymy klasę C++.
‫Teraz potrzebujemy klasy, której możemy użyć dla naszych pionków.
‫Teraz mówię o pionkach w liczbie mnogiej, ponieważ w naszej grze będą dwa różne pionki.
‫Będzie czołg, którego używamy do toczenia się po poziomie, i wieża,
‫która będzie naszym wrogiem, dzięki czemu będziemy mogli stworzyć podstawową klasę pionka.
‫Będzie to miało podstawowe funkcje wspólne dla czołgu i wieży.
‫I w ten sposób możemy stworzyć nasze dwie klasy potomne, czołg i wieżę.
‫Będą one dziedziczyć cechy z podstawowej klasy pionków i są to rzeczy,
‫które będą dzielić oba pionki, takie jak siatka, komponent kapsuły i możliwość wystrzeliwania
‫pocisków.
‫Teraz zajmiemy się wszystkimi tymi funkcjami w przyszłych filmach do tego filmu.
‫Stworzymy tylko klasę C++ i dodamy do niej kilka podstawowych zmiennych.
‫To jest nasza motywacja do stworzenia naszej pierwszej klasy C++.
‫Teraz jesteśmy gotowi do rozpoczęcia tworzenia klas C++ dla tego projektu.
‫Teraz zobaczysz w przeglądarce treści, że nie ma folderów dla klas C++.
‫To dlatego, że nie stworzyliśmy jeszcze żadnej, ale zaraz napiszemy, żebyśmy mogli przejść do narzędzi
‫i wybrać nową klasę C++.
‫I tutaj wybierzemy klasę nadrzędną dla klasy, którą zamierzamy utworzyć.
‫I domyślnie mamy tu kilka opcji do wyboru.
‫To jest coś, co powinieneś zobaczyć na poprzednich wykładach.
‫Więc teraz mamy kilka decyzji do podjęcia.
‫W przypadku jednego, którą klasę rodzicielską wybierzemy?
‫Mamy.
‫Pierwszy to brak.
‫To w zasadzie pozwoliłoby nam stworzyć zwykłą starą klasę C++, ale będziemy potrzebować dodatkowej funkcjonalności.
‫Po pierwsze, chcemy móc umieścić instancję tego obiektu na świecie.
‫Więc nie możemy tego zrobić za pomocą zwykłej, starej klasy C++.
‫Moglibyśmy to zrobić z postacią, pionkiem lub aktorem, ale który z nich jest najbardziej odpowiedni do
‫tego, co chcemy zrobić?
‫Cóż, musimy cofnąć się o krok i zastanowić, co dokładnie staramy się tutaj stworzyć.
‫Staramy się stworzyć czołg, którym będziemy mogli sterować, poruszać się po poziomie i strzelać pociskami, abyśmy mogli zadawać
‫uszkodzenia i inne dobre rzeczy w naszym folderze zasobów.
‫Przypomnijmy, że mamy tutaj ten folder z oczkami, mamy bazę czołgu i wieżę czołgu.
‫To dwie różne siatki, które będą w naszej klasie.
‫Dlatego potrzebujemy możliwości posiadania siatek.
‫A więc zwykła klasa C++ nie ma takiej możliwości.
‫Zastanówmy się więc przez chwilę.
‫Jakiej klasy rodzicielskiej powinniśmy użyć?
‫Cóż, pierwszą klasą, która prawdopodobnie powinna ci się przyjrzeć, jest klasa aktorska.
‫Teraz klasa aktorska ma możliwość umieszczenia w świecie.
‫To świetny początek.
‫Posiada również możliwość wizualnej reprezentacji.
‫Niezależnie od tego, czy jest to siatka, czy cokolwiek innego, można to zobaczyć po umieszczeniu go w świecie, pod
‫warunkiem, że dasz mu siatkę lub cokolwiek, co chcesz zobaczyć.
‫Teraz wywodząca się z aktora, mamy -- klasa i -- dziedziczy wszystkie te cechy
‫z klasy aktora, z wyjątkiem tego, że ma dodatkowe cechy, takie jak możliwość bycia posiadanym przez kontrolera.
‫Teraz cała ta sprawa z posiadaniem jest czymś, o czym bardziej szczegółowo powiemy później, ale na razie po
‫prostu zrozum, że oznacza to -- może być kontrolowane przez gracza.
‫Więc jeśli naciskasz przycisk myszy lub klawisz na klawiaturze, można to ustawić i skonfigurować tak, abyśmy
‫mogli poruszać -- dookoła.
‫Brzmi to jak coś, czego zdecydowanie chcielibyśmy dla naszego czołgu.
‫Tak więc, obsługując dane wejściowe ruchu, -- brzmi jak całkiem dobry wybór, teraz wywodzący się z klasy
‫-- iw ten sposób dziedziczący wszystkie rzeczy, które ma -- plus wszystkie rzeczy, które -- odziedziczyła po
‫swojej klasie nadrzędnej.
‫Mamy klasę postaci, która ma pewne cechy charakterystyczne dla postaci.
‫Na przykład ma coś, co nazywa się komponentem ruchu postaci.
‫Teraz -- nie ma tego.
‫Komponent ruchu postaci daje jej dodatkowe zdolności, takie jak różne tryby ruchu, takie
‫jak latanie i pływanie, kucanie i inne rzeczy charakterystyczne dla postaci.
‫Klasa postaci jest dobra dla postaci dwunożnych i nie będzie działać zbyt dobrze dla postaci nie dwunożnych,
‫które nie są istotami z dwiema nogami.
‫I chociaż byłoby całkiem fajnie mieć czołg lecący po poziomie i zrzucający bomby na
‫wszystko, co widzi, w tej sekcji nie zrobimy nic tak skomplikowanego.
‫Zrobimy tylko czołg, który będzie mógł się toczyć.
‫Więc naprawdę nie potrzebujemy komponentu ruchu postaci ani żadnych specjalnych rzeczy specyficznych dla postaci.
‫Dlatego myślę, że -- jest idealny do tego, co staramy się osiągnąć.
‫Więc rzucę wam wyzwanie stworzenia nowej klasy C++, stworzenia klasy opartej na -- i nazwania tej nowej
‫klasy opartej --.
‫Teraz możesz pozostawić wszystkie ustawienia bez zmian.
‫W kreatorze tworzenia klasy.
‫Nie musisz zmieniać ścieżki pliku ani nic w tym stylu, więc zatrzymaj wideo i utwórz swoją
‫pierwszą klasę C++ dla tego projektu.
‫Więc z powrotem tutaj na poziomie.
‫Przejdźmy więc do narzędzi i stwórzmy nową klasę C++.
‫Nie stworzyłem jeszcze klasy C++.
‫Po prostu zamknąłem to, aby wrócić do tego slajdu.
‫Ale teraz, kiedy wróciłem, jestem gotowy do stworzenia mojej pierwszej klasy C++ dla tego projektu i mam zamiar wybrać --
‫i zobaczysz to za każdym razem, gdy najedziesz na nie.
‫Prawdopodobnie już to widziałeś.
‫Pojawia się podpowiedź, która mówi: -- jest klasą bazową wszystkich aktorów, których mogą opętać
‫gracze.
‫Albo wiem, że brzmi to całkiem ekscytująco, ale skonfigurujemy to tak, aby można je było przenosić na podstawie danych wejściowych od
‫gracza.
‫Więc to jest idealne.
‫Dalej mówi się, że są fizycznymi reprezentacjami graczy i stworzeń na poziomie.
‫Innymi słowy, kiedy stworzymy ten czołg, będzie on reprezentował nas jako graczy na całym świecie.
‫Całkiem fajne.
‫Więc wybierz -- i kliknij Dalej, a pokaże nam ścieżkę, w której zamierzamy umieścić tę klasę w naszym projekcie, a
‫zobaczysz, że jest ona w czołgach z ukośnikiem źródłowym.
‫Teraz będziemy chcieli nazwać nasze nowe -- ponieważ moje -- to straszne imię i jest bardzo niejasne.
‫Teraz potrzebujemy czegoś bardziej konkretnego.
‫Zamierzamy używać tego jako klasy bazowej, co oznacza, że będziemy wyprowadzać klasy z tej klasy,
‫abyśmy mogli nazwać tę klasę bazową --.
‫Teraz wiem, że to nie jest dużo lepsze niż moje -- ale hej, to mówi nam, że to jest podstawa --.
‫To jest coś, z czego będziemy czerpać w przyszłości klasy potomne.
‫Dojdziemy do tego.
‫Ale na razie nazwiemy tę bazę -- i klikniemy Utwórz klasę.
‫W porządku.
‫Tak więc kod Visual Studio otworzył się dla nas z naszą nową klasą.
‫Bazowaliśmy na H i na CP.
‫Teraz możemy zamknąć ten pasek boczny, klikając tam ikonę Eksploratora, i możemy przyjrzeć się, co wygenerował
‫dla nas kod V.
‫Tak więc domyślnie otrzymujemy konstruktor klasy oraz trzy funkcje begin, play, tick i setup
‫komponent input player.
‫Teraz powinieneś zapoznać się z Begin, Play i zaznaczyć komentarze tutaj.
‫Wyjaśnij, co robią.
‫Konfiguracja komponentu wejściowego gracza to coś, co dostaje pionek, a ta funkcja pozwala nam obsługiwać dane wejściowe, takie jak
‫klawisz na klawiaturze lub kliknięcie myszą, a my dowiemy się więcej o tym, jak to działa w przyszłych
‫filmach w paśmie podstawowym.
‫CP Te funkcje są dla nas zdefiniowane, ale są dość puste i nie zmienią tego również w
‫przyszłych filmach.
‫Tak więc w tym filmie stworzyliśmy naszą pierwszą klasę C++, a w następnym filmie omówimy komponenty i dlaczego chcielibyśmy
‫dodać kilka do naszej nowej klasy.
‫Zobaczymy się wkrótce.