‫Hej, witaj z powrotem.
‫W tym filmie stworzymy licznik czasu, aby gracz wiedział, ile czasu
‫musi poczekać, zanim zacznie poruszać czołgiem i wysadzać w powietrze.
‫Więc pokażemy czas pozostały do odliczania czasu do rozpoczęcia gry.
‫Wskoczmy więc do edytora i zacznijmy to robić.
‫Teraz jestem tutaj w naszym Widget Blueprint, BP Start Game Widget, a to jest edytor widżetów, jak
‫widzieliśmy.
‫Ale być może zauważyłeś, że w prawym górnym rogu są dwie zakładki, jedna z napisem projektant.
‫To jest to, w czym teraz się znajdujemy i taki, który mówi wykres.
‫A jeśli klikniesz na wykres, wygląda on bardziej jak schemat zdarzeń z węzłami zdarzeń i zakładka
‫mój plan z różnymi sekcjami.
‫I tutaj możemy zrobić logikę planową.
‫Teraz mamy tutaj trzy węzły.
‫Mamy wydarzenie przed konstrukcją.
‫Jest to podobne do konstruktora w C++, a następnie mamy konstrukcję zdarzenia, która jest podobna do rozpoczęcia gry.
‫Więc to jest miejsce, w którym lepiej jest robić rzeczy na początku gry, ponieważ wszystkie
‫odpowiednie klasy są konstruowane w tym momencie, a potem mamy tik zdarzenia.
‫I podobnie jak funkcja tick w C++, mamy tutaj dostęp do czasu Delta.
‫Teraz nie będziemy używać pierwszych dwóch węzłów, więc zaznaczę je, usunę
‫i użyjemy technologii zdarzeń.
‫Teraz naszym celem w tym filmie jest pokazanie, ile czasu pozostało, a teraz mamy trzysekundowy
‫licznik czasu w C++.
‫Stworzyliśmy uchwyt timera i użyliśmy menedżera timera światowego do uruchomienia timera.
‫Wszystko, co robimy tutaj w planach, jest od tego niezależne.
‫Tworzymy tutaj zupełnie inny system logiki, który będzie zbiegał się z zegarem, który
‫ustawiliśmy w C++.
‫Więc to wszystko jest inne i niezależne od strony C++.
‫Teraz tutaj, w widżecie startowym WB, możemy dodawać zmienne, tak jak możemy dodawać zmienne w C++ tutaj.
‫Pod moim planem mogę kliknąć dodaj i wybierz zmienną, a teraz mam zmienną o nazwie nowa zmienna z
‫podkreśleniem zero.
‫A tutaj, w panelu szczegółów, który jest myląco po lewej stronie, mamy teraz nazwę zmiennej
‫i jej typ.
‫Teraz jest domyślnie podświetlone, ponieważ oczekuje się, że zmienisz nazwy zmiennych, gdy tylko
‫je utworzysz.
‫Więc nie potrzebujemy tej domyślnej nazwy.
‫Nazwiemy to własnym imieniem.
‫Nazwę to Odliczanie.
‫A Countdown będzie zmienną zmiennoprzecinkową Y, ponieważ będzie ona śledzić, ile czasu
‫nam zostało.
‫Zacznę to po 3 sekundach, a każdą klatkę odejmę od czasu, który minął
‫od poprzedniej klatki.
‫Otrzymujemy odliczanie od trzech w dół.
‫Teraz kliknę Kompiluj.
‫Teraz, jak tylko kliknę kompiluj, mogę nadać tej wartości domyślną, przewijając w dół szczegóły.
‫Panel, domyślnie jest ustawione na zero.
‫Ustawię go domyślnie na trzy, ponieważ mamy odliczanie trzysekundowe.
‫Czas w obecnej formie to tylko liczba zmiennoprzecinkowa o nazwie Countdown o wartości trzy.
‫Właściwie tego nie zmieniliśmy, ale od każdej klatki gry chciałbym odjąć czas Delta, który
‫jest ilością czasu, która minęła od poprzedniej klatki.
‫W ten sposób Countdown będzie stale aktualizować dekrementację o czas delta, dzięki czemu mamy licznik
‫czasu pracy.
‫Oto jak możemy to zrobić.
‫Zamierzam zrobić odliczanie z naszej zakładki Mój plan, kliknąć i przeciągnąć tutaj do wykresu zdarzeń i
‫zwolnić.
‫Teraz, jak tylko wypuszczę, mam dwie opcje.
‫Pobierz Countdown i ustaw odliczanie.
‫Jeśli kliknę Get Countdown, teraz mam notatkę odliczania, a jeśli kliknę i przeciągnę z jej danych
‫wyjściowych, da mi to dostęp do wartości Countdown.
‫Teraz mogę również kliknąć Odliczanie, przeciągnąć i kliknąć Ustaw odliczanie i mamy ustawiony węzeł.
‫Widzieliśmy je już wcześniej.
‫We wcześniejszych filmach pin wejściowy ustawiacza pozwalał nam na podłączenie wartości zmiennoprzecinkowej, a następnie odliczanie zostanie
‫ustawione na tę wartość.
‫Jak więc odjąć czas Delta od odliczania, a następnie ustawić go na wartość odliczania?
‫Cóż, możemy wziąć nasz węzeł odliczania tutaj i mogę kliknąć i przeciągnąć go, wpisać symbol
‫minusa na klawiaturze i wybrać węzeł Odejmij.
‫Jeśli to wybiorę, mam teraz zmiennoprzecinkowy minus zmiennoprzecinkowy lub węzeł odejmowania.
‫Zobaczysz, że jest napisane, że Target to Kismet Math Library.
‫To mówi, że Kismet Math Library stanowi podstawę tego węzła.
‫Wszystkie węzły mają w swoim rdzeniu kod C++.
‫Więc to, co robi ten węzeł, to pobieranie dwóch danych wejściowych.
‫Zajmuje wejście pływakowe.
‫I zajmuje drugie wejście zmiennoprzecinkowe.
‫Teraz nie zmieni żadnej ze zmiennych, które przekazujemy.
‫Po prostu wykona obliczenia i zwróci wartość, która jest wynikiem odejmowania.
‫Teraz chciałbym wziąć odliczanie i odjąć od niego czas Delta, abym mógł wziąć pin wyjściowy wywołany w
‫czasie Delta z węzła taktu zdarzenia i podłączyć go bezpośrednio do drugiego wejścia w moim węźle
‫odejmowania.
‫Więc to, co robię, to odliczanie minus czas delta i wtedy otrzymujemy wynik.
‫Teraz początkowo odliczanie wynosi 3 sekundy, a czas delta jest bardzo małą wartością.
‫Jest to czas w sekundach, który minął od ostatniej klatki.
‫Więc to byłaby niewielka ilość.
‫Więc to, co wyniknie, gdy zostanie to wykonane po raz pierwszy, to trzy minus niewielka kwota.
‫A to, co chciałbym zrobić, to ustawić wartość odliczania równą temu wynikowi, w każdej pojedynczej klatce.
‫Tak więc każde odliczanie klatki jest stopniowo odejmowane.
‫W ten sposób odliczanie będzie trwało od 3 sekund w dół.
‫Więc wezmę wynik zwrócony z tego węzła odejmowania i podłączę go do danych wejściowych dla
‫ustawionego węzła odliczania.
‫Teraz to nic nie da, jeśli nie podłączę przewodu wykonawczego ze zdarzenia, zaznaczę pin
‫wykonawczy do pinu wejściowego, aby ustawić odliczanie.
‫Więc teraz to, co robi, to każda pojedyncza klatka odejmująca czas Delta od Countdown, biorąc
‫ten wynik i ustawiając odliczanie do tej nowej wartości.
‫Teraz możemy zobaczyć, jak to się zachowuje z węzłem wydruku.
‫Więc przeciągnę się z napisu typu setter i otrzymam węzeł napisu.
‫A potem chciałbym wydrukować wartość odliczania, abym mógł pobrać wartość zwracaną z settera, który da
‫nam nową wartość odliczania w każdej klatce i podepnie ją do węzła in string.
‫I zauważ, że widzę konwersję zmiennoprzecinkową na łańcuch i jeśli teraz zwolnię, otrzymam węzeł konwersji, który weźmie moją
‫zmiennoprzecinkową, przekonwertuje ją na łańcuch i teraz możemy wyświetlić go na ekranie.
‫Zobaczmy teraz, co się stanie, jeśli nacisnę play.
‫Sprawdź to.
‫Widzimy, że liczenie jest udokumentowane w każdej klatce i spamujemy ekran wartością odliczania, która staje
‫się coraz bardziej ujemna.
‫Jest to więc pierwszy krok do uruchomienia naszego licznika czasu.
‫Teraz to zamknę.
‫Widzieliśmy, że wyświetlamy wartość zmiennoprzecinkową, która ma kilka miejsc po przecinku.
‫A kiedy wypisujemy wartość na ekranie, tak naprawdę nie chcemy punktów dziesiętnych, chcielibyśmy liczby całkowitej.
‫Chciałbym więc zobaczyć ilość sekund pozostałych bez tych końcowych cyfr z prawej strony przecinka
‫dziesiętnego.
‫Potrzebuję więc liczby całkowitej.
‫Cóż, co mogę zrobić, to usunąć ten węzeł konwersji i
‫wezmę wynik ustawienia odliczania i wpiszę C E I'll seal, co jest skrótem od seal.
‫Operacja uszczelniania przyjmie wartość zmiennoprzecinkową i zaokrągli ją w górę do najbliższej liczby całkowitej.
‫Więc jeśli mamy trzy, cóż, nie ma potrzeby się kręcić.
‫Zwróci liczbę całkowitą o wartości trzy.
‫Ale jeśli mamy 2. 9, na przykład, węzeł uszczelnienia zaokrągli go do trzech.
‫A gdy ta wartość się zmniejszy, będzie nadal zwracać trzy, aż spadniemy do dwóch.
‫Więc zawsze otrzymamy liczbę całkowitą.
‫Teraz mogę to wstawić do print string i zobaczysz, że jest napisane Convert integer to string.
‫Więc teraz węzeł pieczęci bierze liczbę zmiennoprzecinkową, zaokrąglając ją do najbliższej liczby całkowitej i zwracając tę wartość
‫całkowitą.
‫Więc teraz, jeśli nacisnę play, zobaczymy, że otrzymamy 3 do 1 i zero.
‫I oczywiście nadal spada, ponieważ nigdy nie mówimy, żeby to się skończyło.
‫Ale to świetny początek, ponieważ teraz mamy dostęp do liczby pozostałych sekund i
‫możemy w odpowiedzi wydrukować coś na ekranie.
‫Jak więc wypiszemy poprawny komunikat na ekranie?
‫To, co chciałbym zrobić, to gdy zostały nam 3 sekundy, chciałbym, aby widżet powiedział: Przygotuj się.
‫Kiedy zostaną nam 2 sekundy, chciałbym, żebyś pokazał numer dwa.
‫Kiedy zostanie nam jedna sekunda, chciałbym pokazać numer jeden.
‫A kiedy zostało nam 0 sekund, chciałbym, aby tekst mówił Go.
‫Cóż, możemy to zrobić za pomocą węzła przełączającego, węzły przełączające mogą włączać wiele różnych typów, w tym INT.
‫Teraz sposób, w jaki działa przełącznik na węźle int, polega na tym, że ma wiele przypadków dla wielu wartości.
‫W oparciu o wartość, którą przekazujemy do tego węzła przełącznika, zrobi on jedną z wielu rzeczy.
‫Na przykład, jeśli przekażemy wartość całkowitą trzy, otrzymamy przypadek trzy, który spowoduje, że
‫zostanie wykonana rzecz trzecia.
‫Tak więc przełącznik na węźle końcowym ma wiele linii wykonania i wykona tylko jedną z nich na podstawie.
‫Wejście.
‫Teraz możemy użyć przełącznika na węźle int i przekazać liczbę całkowitą, na przykład wynik naszego węzła uszczelnienia.
‫Więc usunę łańcuch drukowania i przeciągnę węzeł odliczania i wpiszę switch na
‫INT i wybierz switch na int.
‫Teraz zauważ, że pobiera dane wejściowe typu integer.
‫Przekażę wartość zwracaną z węzła uszczelnienia, a także zauważę, że mamy opcję dodawania pinów.
‫Jeśli klikniemy na to, zobaczysz, że oprócz wyjścia, które mówi zero, otrzymamy domyślny pin.
‫Mówi to, że jeśli podłączymy jakąś logikę planu z zerowego pinu wykonawczego, to ta logika
‫zostanie wykonana.
‫Jeśli przekazana wartość wejściowa wynosi zero, a jeśli nie jest dobrze, to domyślnie będzie to ten kod
‫wykonawczy.
‫Teraz możemy ponownie kliknąć dodaj pin i teraz mamy zero i jeden.
‫Możemy więc mieć dwie linie wykonania, jedną dla zera i jedną dla jednego.
‫A potem, jeśli dane wejściowe nie są równe zero lub jeden, to wszystko, co jest podłączone do wartości domyślnych, zostanie wykonane.
‫Mam zamiar kliknąć plus jeszcze dwa razy.
‫Mamy więc przypadki od zera do trzech i przypadek domyślny.
‫Więc teraz do nas należy przeciągnięcie tego i dodanie pewnej logiki projektu, którą chcielibyśmy wykonać w
‫oparciu o wartość przekazaną w tym węźle SEAL.
‫I właśnie to chciałbym, żebyś zrobił dla swojego wyzwania.
‫Chciałbym, abyś wypisał różne komunikaty dla każdego przypadku, używając węzła drukowanego łańcucha dla wartości trzy, którą możesz
‫wydrukować. Przygotuj się za pomocą węzła drukowanego łańcucha.
‫Dla dwóch przypadków możesz po prostu wypisać wartość dwa dla jednego przypadku, możesz wypisać jeden,
‫a dla zerowego przypadku możesz wypisać go teraz dla przypadku domyślnego, po prostu wypisz rozpocznij grę z naszym węzłem łańcucha
‫wydruku.
‫Wstrzymaj wideo i dodaj teraz całą masę węzłów wydruku do wykresu zdarzeń.
‫Dobra.
‫Więc chciałbym przejść dalej i użyć węzła print string i zacznę tutaj na dole dla
‫domyślnego przypadku i zamierzam wpisać print string.
‫A napis, który chciałbym wydrukować, to początek gry.
‫Oto skrót.
‫Jeśli nie wiesz, z wybranym węzłem łańcucha wydruku, mogę najechać myszką w inne
‫miejsce na wykresie zdarzeń i nacisnąć control dx, a to skopiuje węzeł, który wybrałem.
‫Podłączę trzy przypadki do tego węzła z napisem i napiszę szykuj się.
‫Więc kiedy sygnał wejściowy do przełącznika wynosi trzy, zobaczymy.
‫Przygotuj się, wydrukowane na ekranie.
‫Teraz zamierzam ponownie kontrolować DX i połączę to z dwoma przypadkami, a dla dwóch po prostu
‫wypiszę dwa, teraz skopiuję węzeł łańcucha wypisującego, a dla jednego wypiszę wartość jeden.
‫I na koniec, ostatni węzeł napisu w tym miejscu będzie podłączony do przypadku zerowego, a
‫to powie go.
‫Dobra.
‫Więc chodźmy dalej i skompilujmy to, a włączę odtwarzanie, a teraz widzę: przygotuj się, dwa, jeden
‫i gotowe.
‫A potem oczywiście widzimy rozpoczęcie gry, gdy zabraknie nam czasu.
‫Wiemy więc, że wartość maleje i staje się coraz bardziej ujemna, ale jest to domyślny przypadek
‫naszego przełącznika i wtedy wiemy, że możemy rzeczywiście rozpocząć grę.
‫Jest to więc pierwszy krok do wyświetlenia naszego licznika czasu w naszym widżecie.
‫Nie zmieniamy jeszcze tekstu, który mówi Przygotuj się jeszcze, ale wkrótce to zrobimy.
‫W tym filmie stworzyliśmy logikę odliczania i dodaliśmy ją do naszego projektu widżetu.
‫Użyliśmy napisu print, aby pokazać nasze wartości odliczania i wydrukować inną wiadomość.
‫Na podstawie naszych wartości odliczania.
‫Nadal musimy ustawić tekst w widżecie i zrobimy to w następnym filmie.
‫Zobaczymy się wkrótce.