‫Hej.
‫Witamy spowrotem.
‫Jesteśmy gotowi do ukończenia naszej gry, co oznacza, że pozostało tylko kilka rzeczy do zrobienia, aby dopracować naszą
‫grę i doprowadzić ją do stanu, z którego jesteśmy zadowoleni.
‫Przygotuj się więc na zakończenie tej gry.
‫Prawie skończyliśmy.
‫Dodamy tylko kilka funkcji.
‫Chciałbym, aby ruch kamery był nieco płynniejszy, więc od tego zaczniemy.
‫Zauważyłem również, że wieże nadal strzelają pociskami po śmierci czołgu, więc możemy
‫łatwo naprawić kod, aby temu zapobiec.
‫A także zamierzam odwiedzić potencjalny problem z punktem odradzania pocisków.
‫Więc wskoczmy i dopracujmy tę grę.
‫Teraz pierwszą rzeczą, na którą chciałbym się przyjrzeć, jest ruch kamery.
‫Więc jeśli pójdę dalej i wcisnę play, pokażę ci, co mam na myśli.
‫Kiedy się poruszam, zobaczysz, że kamera podąża dokładnie za naszym ruchem, gdy się obracamy, a gdy poruszamy się do
‫przodu i do tyłu, kamera po prostu automatycznie podąża za nami.
‫Teraz możemy dodać do tego aparatu fajną sztuczkę, która sprawi, że będzie trochę płynniejszy.
‫Chodźmy dalej i otwórzmy zbiornik na staw BP.
‫Teraz, w BP Pond Tank, wybiorę komponent naszego ramienia sprężynowego.
‫A jeśli szukam lagów kamery, zobaczę tutaj w sekcji lagów, jest to pole wyboru, aby włączyć opóźnienie
‫kamery.
‫Sprawdzę to i włączę opóźnienie obrotu kamery.
‫To też sprawdzę.
‫Teraz pozwala nam to opóźniać i płynnie nadążać za aparatem, co tworzy przyjemny rodzaj
‫profesjonalnego efektu aparatu.
‫Chodźmy dalej, włączmy odtwarzanie i przetestujmy to.
‫Więc zauważ, że kiedy się poruszam, kamera potrzebuje trochę czasu, aby nadrobić zaległości, gdy się poruszamy.
‫To samo dotyczy rotacji.
‫Wygląda więc na to, że jest trochę bezwładności, a kamera jest na jakimś torze ślizgowym i zwalnia aż
‫do zatrzymania.
‫Teraz możemy wybrać ramię sprężyny i możemy zmienić prędkość opóźnienia kamery i prędkość opóźnienia obrotów.
‫Na przykład, jeśli umieszczę to na mniejszej wartości, powiedzmy pięć i pięć zamiast dziesięciu, teraz przyjrzyjmy się,
‫jak to wygląda.
‫Więc ruszam i zobaczysz, że kamera ma trochę większe opóźnienie.
‫Teraz możemy to zwiększyć lub zmniejszyć według własnego uznania.
‫To jest coś, z czym możesz poeksperymentować i znaleźć wartości, które będą dla ciebie odpowiednie.
‫Tutaj mamy wartość dwa i dla mnie to trochę za duże opóźnienie.
‫Więc myślę, że coś od pięciu do dwóch sprawdziłoby się dla mnie.
‫Jeśli podoba ci się ten rodzaj wartości, to może utrzymasz ją na poziomie dwóch, a może nawet niższych.
‫Ale ustawię to na, powiedzmy, cztery dla szybkości opóźnienia kamery i cztery dla szybkości opóźnienia obrotu
‫kamery.
‫Przyjrzyjmy się, jak to wygląda.
‫Więc kiedy się poruszam, kamera się opóźnia.
‫Wyraźnie widać opóźnienie aparatu, ale nie jest to zbyt duże.
‫Myślę, że to wygląda całkiem nieźle, więc jestem z tego całkiem zadowolony.
‫Naszym kolejnym punktem jest wieża strzelająca już po śmierci czołgu.
‫Pozwól, że pójdę dalej i pokażę ci, co mam na myśli.
‫No to jedziemy.
‫Czołg zginął, a wieże wciąż strzelają.
‫Teraz to dlatego, że zbiornik nadal istnieje.
‫Dopóki jest w zasięgu ognia, wieże będą strzelać.
‫Można to łatwo obsłużyć, mając rodzaj zmiennej, którą możemy sprawdzić, aby zobaczyć, czy zbiornik zginął.
‫Przejdę więc do klasy czołgów i czołgu, i dodam zmienną logiczną, którą możemy sprawdzić, aby
‫zobaczyć, czy czołg nadal żyje.
‫I zamierzam to upublicznić, ponieważ planujemy uzyskać do niego dostęp spoza klasy.
‫Zamierzam więc ustawić tę zmienną byka o nazwie Be Alive i ustawię ją domyślnie na wartość
‫true.
‫Tak więc czołg rozpocznie się w stanie żywym, a następnie, gdy czołg umrze, żywy zostanie ustawiony na fałszywy.
‫A to może się zdarzyć w czołgu CP w zniszczeniu rękojeści.
‫Więc zajmijmy się tutaj destrukcją.
‫A po ustawieniu tych innych właściwości ustawię B żywe na fałsz.
‫Skoro więc ustawiamy B przy życiu na fałsz, możemy wiedzieć, czy czołg zginął, a następnie możemy po
‫prostu zapobiec wystrzeliwaniu pocisków, sprawdzając tę wartość logiczną.
‫Przejdźmy więc do Tower Dot, CP i tutaj sprawdźmy stan ognia.
‫Możemy upewnić się, że czołg wciąż żyje, zanim wystrzelimy.
‫Więc najpierw sprawdzę, czy zbiornik jest ważny.
‫Powiem, że jeśli zbiornik jest równy null pointerowi, to po prostu wrócę wcześniej.
‫W ten sposób wiemy, że Tank będzie ważny, a następnie, aby sprawdzić, czy jesteśmy w
‫zasięgu ognia, dodam i i zobaczę, czy Tank żyje.
‫Jeśli zbiornik.
‫Żyje, wtedy możemy strzelać.
‫Jeśli Tank nie żyje, nie będziemy strzelać.
‫Teraz możesz się zastanawiać, czy dobrym pomysłem jest umieszczenie zwrotu w jednym wierszu, tak jak robiłem
‫to w poprzednich filmach.
‫To dobra okazja do omówienia silników Unreal Engine, najlepszych praktyk programistycznych i rekomendacji.
‫Nierealne praktyki kodowania silników zalecają stosowanie nawiasów klamrowych z treścią dla wszystkich instrukcji if, nawet
‫tych, które mają jedną instrukcję.
‫Powodem jest to, że jeśli planujesz dodać do tego wiele linii kodu, to już masz
‫tutaj treść.
‫I jest to również bardziej przejrzyste.
‫I to również prowadzi mnie do innego punktu, jakim jest używanie przeze mnie samochodu.
‫Kilka razy używałem auto tutaj w klasie pocisków i chociaż może to być skuteczne, na pierwszy
‫rzut oka nie jest tak oczywiste, jakie są typy, dlatego też użycie auto nie jest zalecane w
‫nierealnych praktykach kodowania silnika.
‫Jeśli chcesz trzymać się zalecanych przez Unreal Engine praktyk kodowania, możesz zastąpić te
‫wystąpienia auto rzeczywistym typem.
‫Na przykład tutaj, get instigator controller zwraca kontroler A, więc możemy go zmienić na kontroler i to
‫jest wskaźnik.
‫Ten typ obrażeń, klasa statyczna, zwraca klasę U, więc możemy użyć tutaj twojej klasy i oczywiście dostać
‫właściciela tutaj, zwraca aktora, więc moglibyśmy użyć aktora zamiast auto tutaj i teraz, jeśli spojrzysz na ten kod, to
‫dużo bardziej oczywiste, czym są te typy, podczas gdy auto po prostu maskuje wszystko i
‫pozwala być leniwym i uniknąć wpisywania typów.
‫Teraz czasami nie jestem pewien, co zwraca duże wyrażenie, więc użyję auto, aby zobaczyć, jaki
‫jest ten typ, a później zastąpię go rzeczywistym typem.
‫To kolejny sposób, w jaki możesz użyć auto, aby nauczyć się typów zwracanych przez długie, skomplikowane wyrażenia, takie jak
‫to.
‫Więc ponieważ jesteśmy na etapie dopracowywania, zamierzam zastąpić auto rzeczywistymi nazwami typów tutaj
‫w pocisku.
‫Zamierzam również przejść do pionka podstawowego w funkcji ognia, gdzie mamy ten pocisk i jest to zwracane z
‫tego dużego długiego wyrażenia tutaj.
‫Aktor Spawn zwróci w tym przypadku pocisk, więc mogę go zastąpić pociskiem.
‫Dobra.
‫To dopracuje kod po stronie C++.
‫Przejdźmy dalej i skompilujmy to.
‫Po udanej kompilacji wskoczmy z powrotem do edytora, włączymy odtwarzanie i po prostu upewnijmy
‫się, że te wieże przestaną strzelać do nas po naszej śmierci.
‫Więc jest jedno trafienie.
‫Jest jeszcze jeden, czekam i nie widzę więcej pocisków.
‫Idealny.
‫Dobra.
‫Więc ostatnim punktem, który chciałbym omówić, zanim to zakończymy, jest punkt odrodzenia pocisku.
‫Teraz wybierzmy to tutaj w BP Pond Tank i upewnijmy się, że jest wystarczająco oddalone od
‫beczki.
‫Zanim to zrobimy, przedstawię to bardzo, bardzo blisko i pokażę kilka problemów, które mogą
‫się potencjalnie pojawić.
‫Teraz, gdy idę do przodu i kliknę lewym przyciskiem myszy, zobaczysz, że nie widzę pocisku.
‫W rzeczywistości w ogóle go nie widzę, ponieważ jest po prostu zbyt blisko.
‫Już mamy kolizję.
‫Jest niszczony, zanim może cokolwiek zrobić.
‫Upewnij się więc, że jest daleko od beczki.
‫I tak wypuszczamy trochę dymu, więc będzie to wyglądać, jakby podążał za nim ślad dymu.
‫Więc to nadal będzie wyglądać całkiem realistycznie.
‫Wygląda to całkiem nieźle.
‫A skoro już jesteśmy przy punktach odradzania pocisków, dobrym pomysłem może być przyjrzenie się wieżyczce stawu
‫BP i wybranie jej punktu odradzania pocisków.
‫A jeśli miałeś problemy z odradzaniem pocisków z wieży, możesz
‫chcieć upewnić się, że znajduje się ona również w dobrej odległości od lufy wieży.
‫Więc mamy to.
‫Mamy funkcjonalną grę, która wygląda fantastycznie.
‫Mamy możliwość toczenia się po świecie, mamy możliwość strzelania pociskami i
‫wysadzania rzeczy.
‫Jeśli uderzymy w wieżę, możemy ją zniszczyć.
‫Jeśli wieża nas uderzy, może nas zniszczyć.
‫Właśnie tak.
‫Mamy warunki wygranej i przegranej dzięki widżetom HUD, które wyświetlają się na ekranie i mówią nam,
‫czy wygraliśmy, czy przegraliśmy.
‫Więc to jest fantastyczne.
‫A jeśli chcesz spakować tę grę, możesz to łatwo zrobić, wchodząc na górę
‫i klikając ikonę platform dla Windows, jeśli jesteś na komputerze z systemem Windows lub dla iOS, jeśli używasz
‫Maca maszyny, to oczywiście masz te inne opcje.
‫Jeśli chcesz tworzyć pakiety dla innych platform, polecam przeprowadzić rozeznanie w Internecie, aby wyszukać różne platformy i dowiedzieć
‫się, jak dla nich tworzyć pakiety.
‫Jestem na komputerze z systemem Windows, więc mogę po prostu kliknąć tutaj projekt pakietu dla systemu Windows, a program
‫zapyta mnie, gdzie chciałbym spakować moją grę.
‫Teraz mam swój projekt w Tune Tanks.
‫Mam zamiar kliknąć prawym przyciskiem myszy, utworzyć nowy folder i po prostu wywołam tę kompilację.
‫To jest zazwyczaj miejsce, w którym umieścisz projekt w pakiecie.
‫Wybiorę więc ten folder i zezwolę Unreal Engine na spakowanie mojej gry.
‫Zajmie to prawdopodobnie kilka minut, a kiedy już to zrobię, powinienem mieć grę w pakiecie.
‫Dobra.
‫Kiedy więc skończę pakowanie, powinniśmy zobaczyć w dzienniku wyjściowym, że kompilacja zakończyła się powodzeniem, a następnie możemy
‫zajrzeć do folderu, który wyznaczyliśmy dla naszego spakowanego projektu.
‫Dla mnie będzie to folder kompilacji.
‫Teraz spakowałem cztery okna, więc mam folder Windows i oto moje czołgi tuningowe, kropka xy.
‫To plik wykonywalny.
‫Mogę na nią kliknąć dwukrotnie i oto mój ostateczny projekt.
‫Mogę strzelać.
‫Mogę zrobić unik.
‫Wygląda na to, że wieże wroga mogą do mnie strzelać, a ja mogę je zniszczyć.
‫Tak, mogę je zniszczyć.
‫Wygląda na to, że mogą mnie zniszczyć, a ja mogę przegrać.
‫I oczywiście, gdybym miał trochę więcej umiejętności, mógłbym wygrać mecz.
‫A jako ostatnie wyzwanie, zlecę ci dodanie własnego smaku do gry.
‫Stwórz swoją własną grę.
‫Znajdź nowe dźwięki, efekty lub siatki i stwórz ciekawie wyglądające wieże i czołgi.
‫Dodaj więcej wież, może dodaj różne poziomy umiejętności, spraw, aby wieże były coraz trudniejsze w miarę postępów
‫na swoim poziomie.
‫Może wyrównaj czołg, daj mu poziom, który możesz zwiększyć, gdy będziesz niszczyć coraz więcej wież.
‫Może możesz dodać nową geometrię poziomu i sprawić, by czołg wspinał się po rampach i próbował niszczyć czołgi w
‫trudno dostępnych miejscach.
‫Możliwości są nieograniczone, ale przede wszystkim baw się dobrze.
‫Kiedy tworzysz swoje gry.
‫Nie zamierzasz wstrzymać filmu w tym wyzwaniu.
‫To będzie coś, co możesz zrobić od tego momentu ze swoimi projektami gier.
‫Więc gratulacje.
‫Skończyliśmy naszą grę.
‫Mam nadzieję, że podobała Ci się ta sekcja.
‫Miałem mnóstwo zabawy.
‫To świetny projekt gry i przebyłeś długą drogę.
‫W tej części kursu nauczyłeś się mnóstwa umiejętności, więc mam nadzieję, że jesteś gotowy, aby
‫przejść do bardziej ekscytujących rzeczy.
‫Dziękuję Ci bardzo.
‫Jestem Steven i do zobaczenia wkrótce.