﻿1
00:00:03,990 --> 00:00:09,630
‫Stworzymy więc funkcję ognia i skojarzymy tę funkcję z naszym lewym przyciskiem

2
00:00:09,630 --> 00:00:10,110
‫myszy.

3
00:00:10,110 --> 00:00:16,350
‫I tutaj widać, że rysuję sfery debugowania na czubku lufy naszej wieżyczki tylko po to, by udowodnić,

4
00:00:16,350 --> 00:00:18,210
‫że to mapowanie akcji działa.

5
00:00:18,210 --> 00:00:21,360
‫Za każdym razem, gdy klikam lewym przyciskiem myszy, coś się dzieje.

6
00:00:21,720 --> 00:00:23,090
‫Hej, witaj z powrotem.

7
00:00:23,100 --> 00:00:28,770
‫W tym filmie porozmawiamy o tworzeniu funkcji ognia lub funkcji, której możemy użyć,

8
00:00:28,770 --> 00:00:31,020
‫gdy chcemy odradzać nasze pociski.

9
00:00:31,020 --> 00:00:36,090
‫Stworzymy więc funkcję ognia i powiążemy ją z mapowaniem akcji.

10
00:00:36,090 --> 00:00:38,370
‫Teraz używamy mapowań osi.

11
00:00:38,370 --> 00:00:40,260
‫Mapowanie akcji jest podobne.

12
00:00:40,260 --> 00:00:41,550
‫Porozmawiajmy o tym teraz.

13
00:00:41,550 --> 00:00:47,280
‫Oto fragment zrzutu ekranu mapowania akcji ognia, które mamy w ustawieniach naszego projektu.

14
00:00:47,280 --> 00:00:51,690
‫Zobaczysz, że mamy przypisany lewy przycisk myszy do mapowania akcji ognia.

15
00:00:51,690 --> 00:00:55,290
‫Teraz mapowanie akcji jest bardzo podobne do mapowania osi.

16
00:00:55,290 --> 00:00:57,720
‫Możesz przypisać do niego klawisz lub przycisk.

17
00:00:57,720 --> 00:01:03,420
‫I podobnie jak mapowanie osi, wymaga funkcji, która może być powiązana z mapowaniem akcji.

18
00:01:03,420 --> 00:01:07,440
‫Teraz mapowania osi uruchamiają się w każdej klatce gry.

19
00:01:07,440 --> 00:01:12,840
‫Są jak funkcja tic, a wartość zmiennoprzecinkowa przekazywana w zmianach w zależności od tego, które przyciski

20
00:01:12,840 --> 00:01:13,590
‫są wciskane.

21
00:01:13,590 --> 00:01:15,930
‫Mapowania akcji są nieco inne.

22
00:01:15,960 --> 00:01:22,740
‫Funkcja wywołania zwrotnego powiązana z mapowaniem akcji nie przyjmuje parametrów wejściowych, a wszystko, co się dzieje, to

23
00:01:22,740 --> 00:01:25,200
‫po naciśnięciu przycisku funkcja zostaje wywołana.

24
00:01:25,200 --> 00:01:29,430
‫To, co dzieje się wewnątrz funkcji, zależy od nas jako dewelopera.

25
00:01:29,430 --> 00:01:31,590
‫Teraz mapowania akcji są jednorazowe.

26
00:01:31,590 --> 00:01:33,030
‫Nie zdarzają się w każdej klatce.

27
00:01:33,030 --> 00:01:35,790
‫Zdarzają się tylko raz, gdy naciśniesz przycisk.

28
00:01:35,790 --> 00:01:40,950
‫Jeśli więc zwolnisz przycisk i naciśniesz go ponownie, funkcja zostanie wywołana jeszcze raz.

29
00:01:40,980 --> 00:01:47,280
‫Teraz, kiedy przypisujemy funkcje do mapowań osi, użyliśmy osi bind do mapowania akcji, używamy funkcji

30
00:01:47,280 --> 00:01:52,650
‫zwanej akcją bind i pobiera dane wejściowe podobne do osi bind.

31
00:01:52,650 --> 00:01:56,400
‫Przyjmuje nazwę odwzorowania akcji jako literał ciągu.

32
00:01:56,430 --> 00:01:58,710
‫Wymaga również wskaźnika do klasy.

33
00:01:58,710 --> 00:02:04,470
‫Łączymy funkcję, dla której możemy tego użyć, i oczywiście wymaga to funkcji zwrotnej.

34
00:02:04,470 --> 00:02:11,580
‫Teraz dodatkowy parametr przyjmuje, że oś bind nie wymaga jako stałej wyliczenia określającej, czy chcemy,

35
00:02:11,580 --> 00:02:17,130
‫aby ta funkcja była wywoływana po naciśnięciu przycisku lub po zwolnieniu

36
00:02:17,130 --> 00:02:17,640
‫przycisku.

37
00:02:17,640 --> 00:02:25,350
‫Tak więc istnieją dwie opcje dla tego parametru wejściowego, stałej wyliczenia, tj. mi. wciśnięty i stała wyliczeniowa, tj.

38
00:02:25,350 --> 00:02:25,350
‫mi. wydany.

39
00:02:25,350 --> 00:02:31,110
‫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

40
00:02:31,110 --> 00:02:36,960
‫naciśniemy przycisk i zamiast tego, jeśli użyliśmy i. mi. zwolniona, wtedy nasza funkcja zwrotna

41
00:02:36,960 --> 00:02:40,380
‫zostanie wywołana po zwolnieniu przycisku dla naszej funkcji ogniowej.

42
00:02:40,380 --> 00:02:42,900
‫Martwimy się, kiedy naciskamy przycisk.

43
00:02:42,900 --> 00:02:46,890
‫Stwórzmy więc funkcję ognia i powiążmy ją z mapowaniem akcji ognia.

44
00:02:46,890 --> 00:02:53,490
‫Teraz jestem tutaj w bazie odradzania, a powodem, dla którego jestem tutaj w stawie, jest to, że ta funkcja ognia

45
00:02:53,490 --> 00:02:57,270
‫jest czymś, czego możemy użyć w klasie czołgu i klasie wieży.

46
00:02:57,270 --> 00:03:03,030
‫Więc jeśli umieścimy go tutaj w stawie podstawowym, to zarówno Tank, jak i wieża odziedziczą tę funkcję.

47
00:03:03,030 --> 00:03:08,850
‫A ponieważ zarówno czołg, jak i wieża będą strzelać pociskami, mogą po prostu odziedziczyć tę funkcję i

48
00:03:08,850 --> 00:03:10,230
‫z niej korzystać.

49
00:03:10,260 --> 00:03:16,530
‫Teraz, ponieważ chciałbym mieć dostęp do funkcji w obu klasach potomnych, mogę umieścić tę funkcję tutaj

50
00:03:16,530 --> 00:03:19,500
‫w sekcji chronionej, podobnie jak obracanie wieżyczki.

51
00:03:19,500 --> 00:03:26,220
‫Tak więc w ramach obracania wieży mam zamiar utworzyć funkcję void o nazwie fire, która nie pobiera żadnych danych wejściowych

52
00:03:26,220 --> 00:03:30,780
‫i możemy przejść dalej i zdefiniować funkcję ognia w oparciu o CPP.

53
00:03:30,780 --> 00:03:36,990
‫Więc tutaj jest oparty na CPP i tuż pod obrotem wieży, zamierzam umieścić funkcję ognia i musimy

54
00:03:36,990 --> 00:03:41,430
‫w pełni określić nazwę tej funkcji i nadać jej treść funkcji.

55
00:03:41,430 --> 00:03:43,680
‫Więc teraz mamy funkcję ognia.

56
00:03:43,680 --> 00:03:47,040
‫Następnym krokiem jest powiązanie tego z mapowaniem akcji.

57
00:03:47,040 --> 00:03:53,190
‫Teraz chcemy powiązać tę funkcję tylko z klasą zbiornika, ponieważ zbiornik jest jedyną klasą, która będzie pobierać

58
00:03:53,190 --> 00:03:54,720
‫dane od użytkownika.

59
00:03:54,720 --> 00:03:59,610
‫Będziemy później wywoływać funkcję fire w klasie tower, ale będzie to wynik utworzonego przez

60
00:03:59,610 --> 00:04:02,820
‫nas kodu, a nie wyniku danych wejściowych użytkownika.

61
00:04:02,820 --> 00:04:08,730
‫Więc jesteśmy tutaj w Tank CP i zamierzamy to powiązać i skonfigurować komponent wejściowy gracza, tak

62
00:04:08,730 --> 00:04:10,290
‫jak użyliśmy osi bind.

63
00:04:10,290 --> 00:04:12,900
‫Więc użyjemy komponentu wejściowego odtwarzacza.

64
00:04:12,900 --> 00:04:18,720
‫Więc komponent wejściowy odtwarzacza i funkcja będą akcją wiązania.

65
00:04:18,720 --> 00:04:24,150
‫Teraz pierwszym wejściem będzie literał ciągu, który jak zwykle zawiniemy w makro

66
00:04:24,150 --> 00:04:24,780
‫tekstowe.

67
00:04:24,780 --> 00:04:27,810
‫A to mapowanie akcji nazywa się ogniem.

68
00:04:27,960 --> 00:04:34,080
‫Teraz następnym parametrem będzie ta stała wyliczeniowa, która określa, czy chcemy, aby ta

69
00:04:34,080 --> 00:04:39,000
‫funkcja była wywoływana po naciśnięciu przycisku, czy po zwolnieniu przycisku.

70
00:04:39,000 --> 00:04:42,150
‫I będziemy używać, podkreślam wciśnięty.

71
00:04:43,170 --> 00:04:46,260
‫Ponieważ chcielibyśmy, aby nasza funkcja była wywoływana po naciśnięciu przycisku.

72
00:04:46,260 --> 00:04:49,520
‫Teraz następny jest obiekt klasy użytkownika, który będzie taki.

73
00:04:49,530 --> 00:04:55,620
‫I wreszcie mamy naszą funkcję zwrotną, dzięki czemu możemy powiedzieć o pożarze czołgu.

74
00:04:55,770 --> 00:05:00,690
‫A teraz nasza funkcja ognia jest powiązana z mapowaniem akcji ognia.

75
00:05:00,690 --> 00:05:07,200
‫Wiemy więc, że nasza funkcja ognia jest powiązana z mapowaniem akcji ognia, ale chcielibyśmy jakiegoś wizualnego

76
00:05:07,200 --> 00:05:09,900
‫potwierdzenia i to będzie twoje wyzwanie.

77
00:05:09,900 --> 00:05:14,130
‫Więc w funkcji ognia chciałbym, żebyś narysował sferę debugowania.

78
00:05:14,130 --> 00:05:19,440
‫Widzieliśmy już, jak to zrobić, więc śmiało uzupełnij parametry wartościami, które Twoim zdaniem

79
00:05:19,440 --> 00:05:20,640
‫są odpowiednie.

80
00:05:20,670 --> 00:05:24,030
‫Użyj lokalizacji punktu odrodzenia pocisku.

81
00:05:24,270 --> 00:05:30,210
‫Teraz punkt odradzania pocisku jest komponentem sceny użycia i widzieliście, że komponenty mają funkcję o

82
00:05:30,210 --> 00:05:32,100
‫nazwie pobierz lokalizację komponentu.

83
00:05:32,100 --> 00:05:33,780
‫Zwraca wektor F.

84
00:05:33,810 --> 00:05:38,220
‫To jest to, czego możesz użyć, aby uzyskać lokalizację punktu odradzania pocisków.

85
00:05:38,220 --> 00:05:45,630
‫Teraz, kiedy wywołujesz sferę debugowania rysowania, użyj czasu trwania około 3 sekund, abyśmy mogli zobaczyć tę sferę

86
00:05:45,630 --> 00:05:47,760
‫przez chwilę, zanim zniknie.

87
00:05:47,760 --> 00:05:50,460
‫Zatrzymaj wideo i zrób to teraz.

88
00:05:53,360 --> 00:05:53,550
‫Dobra.

89
00:05:53,660 --> 00:05:56,810
‫Więc wróciłem tutaj w Bass Pond i tutaj w Bass Pond.

90
00:05:57,110 --> 00:06:00,770
‫CP Mam zamiar dołączyć pomocników debugowania rysowania.

91
00:06:00,770 --> 00:06:03,500
‫Mamy więc dostęp do rysowania sfery debugowania.

92
00:06:03,500 --> 00:06:07,010
‫Więc powiem, że dołącz pomocników debugowania rysowania.

93
00:06:08,240 --> 00:06:12,320
‫A teraz na dole, w funkcji ognia, możemy narysować sferę debugowania.

94
00:06:12,350 --> 00:06:18,050
‫Teraz pierwszą rzeczą, którą chcę zrobić, jest ustalenie lokalizacji punktu odrodzenia pocisku.

95
00:06:18,080 --> 00:06:26,240
‫Teraz mogę do tego utworzyć lokalny wektor f i mogę nazwać tę lokalizację punktu odradzania pocisku i mogę

96
00:06:26,240 --> 00:06:29,870
‫ją zainicjować za pomocą punktu odradzania pocisku.

97
00:06:32,030 --> 00:06:35,780
‫I dzwoniąc, znajdź lokalizację komponentu.

98
00:06:35,780 --> 00:06:43,100
‫Więc teraz mam lokalizację punktu odradzania pocisku i tego mogę użyć podczas wywoływania sfery debugowania

99
00:06:43,100 --> 00:06:43,850
‫rysowania.

100
00:06:43,850 --> 00:06:46,130
‫Wywołam więc sferę debugowania draw.

101
00:06:47,450 --> 00:06:53,720
‫A do pierwszego wejścia potrzebujemy świata i wiemy, że możemy uzyskać świat za pomocą polecenia get world next.

102
00:06:53,720 --> 00:06:59,810
‫Potrzebujemy środka kuli, która będzie naszym punktem odrodzenia pocisku.

103
00:06:59,810 --> 00:07:04,190
‫To będzie to, co przekazuję jako drugi parametr.

104
00:07:04,190 --> 00:07:06,190
‫A następnie potrzebujemy promienia kuli.

105
00:07:06,200 --> 00:07:08,330
‫Teraz będę miał małą kulę.

106
00:07:08,480 --> 00:07:15,920
‫Podam promień, powiedzmy, 25 F dla liczby segmentów, których zamierzam użyć 12, a dla koloru mogę

107
00:07:15,920 --> 00:07:17,690
‫użyć koloru F.

108
00:07:18,680 --> 00:07:21,380
‫Przeczytaj teraz cztery narysuj trwałe linie.

109
00:07:21,380 --> 00:07:27,500
‫Zamierzamy zawiesić nasze linie przez 3 sekundy, więc możemy to zrobić fałszywie, ponieważ nie chcemy,

110
00:07:27,500 --> 00:07:28,910
‫aby trwały wiecznie.

111
00:07:28,940 --> 00:07:36,380
‫Damy tej sferze debugowania trzykrotne życie. Więc skompilujmy to teraz, a wciśniemy play i

112
00:07:36,380 --> 00:07:42,230
‫kliknę, a teraz widzimy naszą sferę debugowania i oczywiście znika po

113
00:07:42,230 --> 00:07:43,310
‫3 sekundach.

114
00:07:43,640 --> 00:07:49,880
‫Teraz jest to dobre potwierdzenie, że nasze mapowanie akcji działa, a także daje

115
00:07:49,880 --> 00:07:53,450
‫nam weryfikację lokalizacji punktu odradzania pocisków.

116
00:07:53,450 --> 00:07:59,600
‫Kiedy więc zaczniemy tworzyć pociski, wiemy, że pojawią się one we właściwym

117
00:07:59,600 --> 00:08:02,420
‫miejscu wskazanym przez sferę debugowania.

118
00:08:02,420 --> 00:08:03,500
‫Więc to jest świetne.

119
00:08:03,650 --> 00:08:09,470
‫W tym filmie stworzyliśmy funkcję ognia i powiązaliśmy ją z mapowaniem akcji ognia.

120
00:08:09,740 --> 00:08:15,800
‫Aby udowodnić, że to działa, narysowaliśmy sferę debugowania w punkcie odradzania pocisków za każdym razem, gdy

121
00:08:15,830 --> 00:08:21,710
‫klikniemy lewym przyciskiem myszy, więc mamy funkcję strzelania, jesteśmy prawie gotowi do rozpoczęcia odradzania pocisków.

122
00:08:21,710 --> 00:08:25,250
‫I umieściliśmy tę funkcję również w podstawowej klasie ponga.

123
00:08:25,250 --> 00:08:27,980
‫W ten sposób nasza wieża również może z niego korzystać.

124
00:08:27,980 --> 00:08:32,990
‫W następnym filmie omówimy, w jaki sposób nasza wieża będzie korzystać z tej funkcji.

125
00:08:33,530 --> 00:08:34,460
‫Zobaczymy się wkrótce.

