‫Cześć i witaj.
‫W tym wykładzie zamierzamy sprawić, by warunek wygranej działał, abym mógł zabić wszystkich wrogów na
‫moim poziomie, a wyświetli mi się ten ekran zwycięstwa.
‫HAREL Zanurzmy się i zobaczmy, jak to się robi.
‫Chcielibyśmy więc, aby nasz gracz rzeczywiście wygrał tę grę.
‫W tej chwili nie mogą.
‫Więc jak to zrobimy?
‫Cóż, można to zrobić na wiele sposobów.
‫Jednym z nich byłoby wywołanie pionka zabitego, a pionek nie jest kontrolerem gry.
‫Ale wtedy moglibyśmy odjąć od zmiennej, która mówi, ile powietrza jest na świecie, ile musimy
‫zabić.
‫A kiedy spadnie do zera, możemy zakończyć grę na korzyść gracza.
‫Myślę jednak, że jest to trochę kruche, ponieważ wymaga od nas umieszczenia liczby wrogów na świecie w
‫dwóch miejscach, zasadniczo musi być w trybie gry, ale także musi być na świecie,
‫gdy umieszczasz wrogowie padli i ci dwaj mogą stracić synchronizację, a to spowoduje pewne
‫problemy.
‫Więc wolałbym to zrobić, po prostu powiedzieć, policzmy wszystkich wrogów na świecie za każdym razem, gdy pionek zostanie zabity,
‫zróbmy ponowne przeliczenie, policzenie wszystkich A. I. i zobacz, które jeszcze
‫żyją.
‫Jeśli któryś z nich nadal żyje, to jeszcze nie zakończymy gry.
‫Miejsce gra się nie skończyła.
‫Ale jeśli wszyscy nie żyją, a kontroler gry nie, to gracz wygrał.
‫Abyśmy mogli to zrobić, musimy mieć sposób na zapytanie kontrolera gracza, czy jest martwy, czy
‫nie.
‫Przepraszam, mam na myśli kontroler.
‫Poszukajmy więc naszego kontrolera strzelanek kropka H.
‫Chcemy tutaj stworzyć nową metodę publiczną, która pozwoli nam zapytać, czy jest martwa, czy
‫nie.
‫Więc zrobimy, że pula jest oparta, jest martwa i będzie kontrastem, ponieważ nie powinna zmieniać tego, co
‫faktycznie dzieje się w kontrolerze, gdy jest wywoływana.
‫I możemy śmiało tworzyć implementację.
‫Teraz powinniśmy kontrolować -- to może nam powiedzieć, czy jest martwe, czy nie.
‫Jeśli pójdziemy i przyjrzymy się temu jeszcze raz, przyjrzymy się postaci strzelca, która jest --.
‫Pamiętaj, że już tam mamy funkcję martwego kontaktu.
‫Więc zasadniczo to, co chcemy zrobić, to po prostu przekazać prośbę do strzelca, którego teraz kontroluję.
‫Tak.
‫Jedna rzecz jest taka, że możesz powiedzieć w trybie KML all game, możesz chwycić
‫kontroler, chwycić -- że to, co kontroluje, wykonać rzutowanie, a następnie sprawdzić, czy to -- jest martwe.
‫Jednak generalnie nie jest to najlepsza praktyka, ponieważ oznacza to, że jeśli nagle coś
‫zmieni się w sposobie obliczania śmierci i lub kontroler powietrza będzie kontrolować różne typy --, nagle musimy
‫zmienić tryb gry, który nie ma sens.
‫Więc lepiej to zrobić i wykonać bardziej solidne przekazywanie wewnątrz kontrolerów powietrza.
‫To powstrzymuje nas od grzebania w wewnętrznych elementach klasy innej osoby, co ogólnie oznacza, że możemy
‫ograniczyć, kiedy coś się zmieni, możemy ograniczyć liczbę klas, które musimy przejść, dotknąć, zaktualizować
‫i zmienić, co zawsze jest dobre.
‫Więc będziemy chcieli zrobić - i rzucić - aby upewnić się, że jest to postać strzelca.
‫Więc zróbmy obsadę.
‫Będzie do strzelca.
‫Postać i myślę, że będziemy musieli to zrobić, musi zawierać u góry kontrolę wzroku, aby upewnić się,
‫że wiemy o takiej postaci podczas sesji.
‫A potem zrobimy obsadę, robiąc get -- i będziemy chcieli zapisać to w zmiennej,
‫żeby to była strzelanka.
‫Wskaźnik znakowy o nazwie nazwijmy to kontrolowany.
‫Postać.
‫Nie mogę nazwać tego po prostu znakiem, ponieważ jest to już zmienna na kontrolerze powietrza i wstawiamy średnik na
‫końcu linii, a my sprawdzimy, czy to jest zero, czy nie.
‫Tak więc znak kontrolny nie jest równy wskaźnikowi null, wtedy powinniśmy być w stanie zapytać go o jego stan, czy jest
‫martwy, czy nie.
‫Powinniśmy więc być w stanie zwrócić sterowaną postać.
‫Nie żyje.
‫Zasadniczo przekazujemy na żądanie naszej sterującej postaci.
‫Jeśli ta postać kontrolna jest postacią strzelca.
‫Jednak zauważ, że nie mamy tutaj oświadczenia o powrocie.
‫W innym przypadku musimy mieć zwrot.
‫Zawsze musi być powrót.
‫Jeśli zwracana wartość nie jest nieważna.
‫Musimy więc umieścić tutaj instrukcję return poza instrukcją if, aby złapać przypadek, w którym jeszcze
‫nie wróciliśmy do instrukcji if.
‫I tutaj powiemy tylko, czy ta postać jest martwa?
‫No tak, w zasadzie, jeśli to nie jest prawda, to w zasadzie jest martwe.
‫Jeśli nie mamy pionka, jeśli nie kontrolujemy pionka, to zasadniczo ten kontroler powietrza jest dla
‫nas prawie martwy.
‫A może tak się stać, ponieważ pamiętaj, że pionek odłącza się od swojego kontrolera, gdy umiera.
‫Więc wrócimy do trybu gry i co będziemy chcieli tutaj robić?
‫Zasadniczo chcemy zrobić pełną pętlę po całym i.
‫Strzelec, ja.
‫Na świecie.
‫I z tym dla pętli.
‫Co chcemy zrobić?
‫Chcemy zobaczyć, że nie żyje.
‫Zasadniczo i lub w zasadzie nie jest martwy.
‫A jeśli żaden z nich nie jest martwy, od razu wiemy, że wcale nie musimy sprawdzać całego powietrza.
‫Jeśli choć jeden facet żyje, gra się nie kończy.
‫Możemy więc zrobić coś, co jest znane jako wczesny powrót, co prawdopodobnie widzieliście
‫już wcześniej, co oznacza wyjście z tej funkcji bez wykonywania w niej więcej kodu.
‫Tak więc wszystko po tym wczesnym powrocie przestanie wykonywać pełną pętlę, przestanie wykonywać wszystko po
‫tym, jak przestanie wykonywać.
‫Ale możemy powiedzieć, że jeśli udało nam się przejść przez tę pełną pętlę bez
‫wcześniejszego powrotu, co oznacza, że na świecie nie ma żywych sojuszników, musimy iść naprzód i zakończyć grę.
‫Proste.
‫Teraz jedną z części układanki, na którą musimy się przyjrzeć, są wywołania końcowe.
‫Gra zakończyła się na kontrolerze gracza.
‫Przyjrzyjmy się, jak obecnie radzi sobie z tym kontroler gracza strzelającego.
‫Jeśli przejdziemy do jego CP, obecnie widzimy, że obecnie całkowicie ignoruje, że B jest zwycięzcą, obecnie
‫ignoruje, czy jest zwycięzcą, czy nie.
‫Musimy więc powiedzieć, czy B jest zwycięzcą.
‫Wtedy zrobimy coś innego.
‫Zamierzamy wyświetlić nasz ekran przegranych.
‫Wytnij więc tutaj te linie, które odpowiadają za wyświetlanie ekranu utraty.
‫Umieść to w instrukcji out, a i tak uruchomimy ponownie w obu przypadkach.
‫Więc obecnie be jest zwycięzcą.
‫Co zrobimy?
‫Cóż, po prostu pójdziemy dalej i prawdopodobnie stworzymy również osłonę przed wiatrem, co będzie dość
‫proste.
‫Przechodzimy do naszego pliku nagłówkowego, aby kręcić, aby odtworzyć kontroler.
‫Możemy duplikować, tracić klasę ekranu i tworzyć klasę ekranu wygrywającego.
‫I tutaj też możemy śmiało z tym walczyć.
‫Mini wyzwanie dla Ciebie.
‫Może śmiało skonfiguruj go tak, aby mógł zrobić ekran wygranej.
‫Kay, witaj z powrotem.
‫Więc miejmy nadzieję, że dałeś temu szansę.
‫Po prostu wejdziemy i umieścimy tutaj przednią szybę, zamiast wszystkich kopii reklam strat, zasadniczo wszystkiego
‫innego.
‫Tak jak.
‫Zamierzamy iść dalej i skompilować to, a następnie przejść do edytora i znaleźć
‫klasę kontrolera odtwarzacza.
‫I powinniśmy teraz zobaczyć, że jest pusta klasa szyby przedniej.
‫A to, co zrobimy, to przejść do interfejsu użytkownika i powielić ekran utraty, aby wywołać
‫przednią szybę.
‫I możesz stworzyć swoje od podstaw, jeśli chcesz.
‫Ale zamierzam używać go bardzo podobnie, z wyjątkiem tego, że zmienię kolor na zielony.
‫I sprawić, że wygrasz zamiast przegrać.
‫Ponieważ logika restartu będzie właściwie taka sama.
‫Z jakiegoś powodu zresetowałem mój kolor, że po prostu pójdę i ponownie ustawię kolorowy ekran.
‫Ok, więc to świetnie.
‫Ale wciąż mamy ten fragment pseudokodu w trybie gry KML, który nie został wypełniony.
‫A to dlatego, że Twoim wyzwaniem jest obliczenie wygranej.
‫Wypełnij pseudokod, użyj aktywnego zakresu T od dołu w tej klasie, aby ci pomóc.
‫Użyj nowej funkcji, którą stworzyliśmy na kontrolerze i przetestuj ją.
‫Zobacz, czy Twoja przednia szyba pojawi się, gdy zabijesz całe powietrze na świecie.
‫Więc zostawię to z pseudokodem na ekranie, abyś mógł się przyjrzeć.
‫K Witamy ponownie.
‫Zacznijmy więc od pętli for.
‫Więc mam zamiar zrobić po co robimy za pętlę?
‫Tym razem to nie jest kontroler.
‫To będzie kontroler powietrza strzelca.
‫Więc musimy to uwzględnić.
‫To będzie strzelec.
‫Kontroler powietrza Don H.
‫A to oznacza, że zamierzamy zapętlić się nad sklepem z kontrolerami Shooter
‫II, żeby po prostu ochłodzić kontroler, szorty, a potem znowu zrobimy serię aktorów, niż kontroler powietrzny strzelca.
‫Musimy dopasować te dwa typy, a następnie zdobyć świat.
‫Więc robimy to na tym poziomie.
‫A potem mamy ciało pełnej pętli, w której będziemy pytać, czy nie jest martwy.
‫Więc jeśli nie, Controller Arrow nie żyje.
‫Zasadniczo mówiąc, upewnij się, że nie jesteśmy martwi.
‫A jeśli nie jest martwy, po prostu idziemy dalej i wracamy do tego wczesnego powrotu, ponieważ wiemy, że gra
‫nie może się jeszcze skończyć.
‫W przeciwnym razie, jeśli przeszliśmy całą pełną pętlę bez powrotu, musimy zakończyć grę, ponieważ
‫gracz musiał wygrać, zabić całą sztuczną inteligencję na poziomie.
‫Więc w tym przypadku moglibyśmy zrobić grę końcową.
‫Prawdziwe.
‫Ponieważ gracz ma jeden.
‫A to powinno powiadomić wszystkich kontrolerów graczy i kontrolerów powietrza.
‫Fajny.
‫Więc przejdźmy i skompilujmy to przede wszystkim.
‫Potem przejdę do Unreal i zagram.
‫Z jakiegoś powodu mój edytor myśli, że jestem w tej operacji z określonym kolorem, więc po
‫prostu ją zamknę i zrestartuję.
‫Teraz, gdy jest za darmo, pójdę dalej i wcisnę „odtwarzaj” i zostanę zabity.
‫Przede wszystkim tak, wciąż przegrywam.
‫To wspaniale.
‫A teraz zobaczmy, czy uda mi się zabić tego gościa, zanim on zabije mnie.
‫Chodźmy.
‫Boom, boom, boom, boom, boom, boom, boom.
‫Za szybko przegrywam.
‫Chodźmy ponownie znaleźć broń i ustawić.
‫Mamy naprawdę duże obrażenia od pistoletu.
‫Dla celów testowych zamierzam tym razem zmniejszyć obrażenia z powrotem do może 20.
‫Więc nadal jest szybki, ale nie tak szybki.
‫Idź, zagraj i uderz tego gościa kilka razy.
‫I zobaczyliśmy, że faktycznie wygrałem, ponieważ poziom został wznowiony.
‫Więc jeśli znowu pójdę i zabiję tego gościa, nic się nie dzieje.
‫W dzienniku komunikatów podaje to, co zostało wywołane z klasą null.
‫Powodem tego jest to, że jeśli ponownie przejdziemy do kontrolera strzelanek BP, widać, że nie podłączyliśmy
‫naszej przedniej szyby.
‫Jedna rzecz, o której zapomniałem zrobić, żeby móc kompilować, zapisywać i grać.
‫A teraz mam nadzieję, że jeśli zabiję tego gościa do nowej zagłady, wygram i zrestartuję za 5 sekund.
‫I chcę wam pokazać, że to samo jest prawdą.
‫Jeśli umieszczę więcej kontrolerów graczy na świecie, będzie to wymagało ode mnie zabicia ich obu.
‫Więc chodźmy i sprowadźmy tutaj strzelca.
‫A to będzie mój drugi wróg do zabicia.
‫Więc zabij tego faceta.
‫Bum.
‫I nie wygrał.
‫Potem podchodzę do drugiego faceta.
‫Bum.
‫A teraz mam jeden.
‫Ponieważ zabiłem wszystkie alfa i nie musieliśmy zmieniać żadnych zmiennych, aby to zrobić.
‫Bo ja na pętlę liczę wszystkich żyjących za każdym razem od zera.
‫Więc obecnie żyjemy w dość cichym świecie.
‫Więc w następnym wykładzie chcę zacząć trochę przyglądać się, jak możemy zrobić trochę dźwięku.
‫Zobaczę cię tam.