‫Stworzymy więc funkcję ognia i skojarzymy tę funkcję z naszym lewym przyciskiem
‫myszy.
‫I tutaj widać, że rysuję sfery debugowania na czubku lufy naszej wieżyczki tylko po to, by udowodnić,
‫że to mapowanie akcji działa.
‫Za każdym razem, gdy klikam lewym przyciskiem myszy, coś się dzieje.
‫Hej, witaj z powrotem.
‫W tym filmie porozmawiamy o tworzeniu funkcji ognia lub funkcji, której możemy użyć,
‫gdy chcemy odradzać nasze pociski.
‫Stworzymy więc funkcję ognia i powiążemy ją z mapowaniem akcji.
‫Teraz używamy mapowań osi.
‫Mapowanie akcji jest podobne.
‫Porozmawiajmy o tym teraz.
‫Oto fragment zrzutu ekranu mapowania akcji ognia, które mamy w ustawieniach naszego projektu.
‫Zobaczysz, że mamy przypisany lewy przycisk myszy do mapowania akcji ognia.
‫Teraz mapowanie akcji jest bardzo podobne do mapowania osi.
‫Możesz przypisać do niego klawisz lub przycisk.
‫I podobnie jak mapowanie osi, wymaga funkcji, która może być powiązana z mapowaniem akcji.
‫Teraz mapowania osi uruchamiają się w każdej klatce gry.
‫Są jak funkcja tic, a wartość zmiennoprzecinkowa przekazywana w zmianach w zależności od tego, które przyciski
‫są wciskane.
‫Mapowania akcji są nieco inne.
‫Funkcja wywołania zwrotnego powiązana z mapowaniem akcji nie przyjmuje parametrów wejściowych, a wszystko, co się dzieje, to
‫po naciśnięciu przycisku funkcja zostaje wywołana.
‫To, co dzieje się wewnątrz funkcji, zależy od nas jako dewelopera.
‫Teraz mapowania akcji są jednorazowe.
‫Nie zdarzają się w każdej klatce.
‫Zdarzają się tylko raz, gdy naciśniesz przycisk.
‫Jeśli więc zwolnisz przycisk i naciśniesz go ponownie, funkcja zostanie wywołana jeszcze raz.
‫Teraz, kiedy przypisujemy funkcje do mapowań osi, użyliśmy osi bind do mapowania akcji, używamy funkcji
‫zwanej akcją bind i pobiera dane wejściowe podobne do osi bind.
‫Przyjmuje nazwę odwzorowania akcji jako literał ciągu.
‫Wymaga również wskaźnika do klasy.
‫Łączymy funkcję, dla której możemy tego użyć, i oczywiście wymaga to funkcji zwrotnej.
‫Teraz dodatkowy parametr przyjmuje, że oś bind nie wymaga jako stałej wyliczenia określającej, czy chcemy,
‫aby ta funkcja była wywoływana po naciśnięciu przycisku lub po zwolnieniu
‫przycisku.
‫Tak więc istnieją dwie opcje dla tego parametru wejściowego, stałej wyliczenia, tj. mi. wciśnięty i stała wyliczeniowa, tj.
‫mi. wydany.
‫Oznacza to, że możemy wywołać akcję wiązania przekazującą w i. mi. wciśnięty, jeśli chcemy powiązać funkcję zwrotną, gdy
‫naciśniemy przycisk i zamiast tego, jeśli użyliśmy i. mi. zwolniona, wtedy nasza funkcja zwrotna
‫zostanie wywołana po zwolnieniu przycisku dla naszej funkcji ogniowej.
‫Martwimy się, kiedy naciskamy przycisk.
‫Stwórzmy więc funkcję ognia i powiążmy ją z mapowaniem akcji ognia.
‫Teraz jestem tutaj w bazie odradzania, a powodem, dla którego jestem tutaj w stawie, jest to, że ta funkcja ognia
‫jest czymś, czego możemy użyć w klasie czołgu i klasie wieży.
‫Więc jeśli umieścimy go tutaj w stawie podstawowym, to zarówno Tank, jak i wieża odziedziczą tę funkcję.
‫A ponieważ zarówno czołg, jak i wieża będą strzelać pociskami, mogą po prostu odziedziczyć tę funkcję i
‫z niej korzystać.
‫Teraz, ponieważ chciałbym mieć dostęp do funkcji w obu klasach potomnych, mogę umieścić tę funkcję tutaj
‫w sekcji chronionej, podobnie jak obracanie wieżyczki.
‫Tak więc w ramach obracania wieży mam zamiar utworzyć funkcję void o nazwie fire, która nie pobiera żadnych danych wejściowych
‫i możemy przejść dalej i zdefiniować funkcję ognia w oparciu o CPP.
‫Więc tutaj jest oparty na CPP i tuż pod obrotem wieży, zamierzam umieścić funkcję ognia i musimy
‫w pełni określić nazwę tej funkcji i nadać jej treść funkcji.
‫Więc teraz mamy funkcję ognia.
‫Następnym krokiem jest powiązanie tego z mapowaniem akcji.
‫Teraz chcemy powiązać tę funkcję tylko z klasą zbiornika, ponieważ zbiornik jest jedyną klasą, która będzie pobierać
‫dane od użytkownika.
‫Będziemy później wywoływać funkcję fire w klasie tower, ale będzie to wynik utworzonego przez
‫nas kodu, a nie wyniku danych wejściowych użytkownika.
‫Więc jesteśmy tutaj w Tank CP i zamierzamy to powiązać i skonfigurować komponent wejściowy gracza, tak
‫jak użyliśmy osi bind.
‫Więc użyjemy komponentu wejściowego odtwarzacza.
‫Więc komponent wejściowy odtwarzacza i funkcja będą akcją wiązania.
‫Teraz pierwszym wejściem będzie literał ciągu, który jak zwykle zawiniemy w makro
‫tekstowe.
‫A to mapowanie akcji nazywa się ogniem.
‫Teraz następnym parametrem będzie ta stała wyliczeniowa, która określa, czy chcemy, aby ta
‫funkcja była wywoływana po naciśnięciu przycisku, czy po zwolnieniu przycisku.
‫I będziemy używać, podkreślam wciśnięty.
‫Ponieważ chcielibyśmy, aby nasza funkcja była wywoływana po naciśnięciu przycisku.
‫Teraz następny jest obiekt klasy użytkownika, który będzie taki.
‫I wreszcie mamy naszą funkcję zwrotną, dzięki czemu możemy powiedzieć o pożarze czołgu.
‫A teraz nasza funkcja ognia jest powiązana z mapowaniem akcji ognia.
‫Wiemy więc, że nasza funkcja ognia jest powiązana z mapowaniem akcji ognia, ale chcielibyśmy jakiegoś wizualnego
‫potwierdzenia i to będzie twoje wyzwanie.
‫Więc w funkcji ognia chciałbym, żebyś narysował sferę debugowania.
‫Widzieliśmy już, jak to zrobić, więc śmiało uzupełnij parametry wartościami, które Twoim zdaniem
‫są odpowiednie.
‫Użyj lokalizacji punktu odrodzenia pocisku.
‫Teraz punkt odradzania pocisku jest komponentem sceny użycia i widzieliście, że komponenty mają funkcję o
‫nazwie pobierz lokalizację komponentu.
‫Zwraca wektor F.
‫To jest to, czego możesz użyć, aby uzyskać lokalizację punktu odradzania pocisków.
‫Teraz, kiedy wywołujesz sferę debugowania rysowania, użyj czasu trwania około 3 sekund, abyśmy mogli zobaczyć tę sferę
‫przez chwilę, zanim zniknie.
‫Zatrzymaj wideo i zrób to teraz.
‫Dobra.
‫Więc wróciłem tutaj w Bass Pond i tutaj w Bass Pond.
‫CP Mam zamiar dołączyć pomocników debugowania rysowania.
‫Mamy więc dostęp do rysowania sfery debugowania.
‫Więc powiem, że dołącz pomocników debugowania rysowania.
‫A teraz na dole, w funkcji ognia, możemy narysować sferę debugowania.
‫Teraz pierwszą rzeczą, którą chcę zrobić, jest ustalenie lokalizacji punktu odrodzenia pocisku.
‫Teraz mogę do tego utworzyć lokalny wektor f i mogę nazwać tę lokalizację punktu odradzania pocisku i mogę
‫ją zainicjować za pomocą punktu odradzania pocisku.
‫I dzwoniąc, znajdź lokalizację komponentu.
‫Więc teraz mam lokalizację punktu odradzania pocisku i tego mogę użyć podczas wywoływania sfery debugowania
‫rysowania.
‫Wywołam więc sferę debugowania draw.
‫A do pierwszego wejścia potrzebujemy świata i wiemy, że możemy uzyskać świat za pomocą polecenia get world next.
‫Potrzebujemy środka kuli, która będzie naszym punktem odrodzenia pocisku.
‫To będzie to, co przekazuję jako drugi parametr.
‫A następnie potrzebujemy promienia kuli.
‫Teraz będę miał małą kulę.
‫Podam promień, powiedzmy, 25 F dla liczby segmentów, których zamierzam użyć 12, a dla koloru mogę
‫użyć koloru F.
‫Przeczytaj teraz cztery narysuj trwałe linie.
‫Zamierzamy zawiesić nasze linie przez 3 sekundy, więc możemy to zrobić fałszywie, ponieważ nie chcemy,
‫aby trwały wiecznie.
‫Damy tej sferze debugowania trzykrotne życie. Więc skompilujmy to teraz, a wciśniemy play i
‫kliknę, a teraz widzimy naszą sferę debugowania i oczywiście znika po
‫3 sekundach.
‫Teraz jest to dobre potwierdzenie, że nasze mapowanie akcji działa, a także daje
‫nam weryfikację lokalizacji punktu odradzania pocisków.
‫Kiedy więc zaczniemy tworzyć pociski, wiemy, że pojawią się one we właściwym
‫miejscu wskazanym przez sferę debugowania.
‫Więc to jest świetne.
‫W tym filmie stworzyliśmy funkcję ognia i powiązaliśmy ją z mapowaniem akcji ognia.
‫Aby udowodnić, że to działa, narysowaliśmy sferę debugowania w punkcie odradzania pocisków za każdym razem, gdy
‫klikniemy lewym przyciskiem myszy, więc mamy funkcję strzelania, jesteśmy prawie gotowi do rozpoczęcia odradzania pocisków.
‫I umieściliśmy tę funkcję również w podstawowej klasie ponga.
‫W ten sposób nasza wieża również może z niego korzystać.
‫W następnym filmie omówimy, w jaki sposób nasza wieża będzie korzystać z tej funkcji.
‫Zobaczymy się wkrótce.