﻿1
00:00:04,380 --> 00:00:05,490
‫Cześć i witaj.

2
00:00:05,490 --> 00:00:11,640
‫W tym wykładzie będziemy wdrażać nasze własne funkcje członków klasy, przesuwać platformę i obracać

3
00:00:11,640 --> 00:00:12,570
‫platformę.

4
00:00:12,570 --> 00:00:16,950
‫Zobaczymy, jak możemy je ustawić tak, aby mogły przyjmować argumenty.

5
00:00:17,280 --> 00:00:20,970
‫Pomoże nam to trochę uporządkować nasz kod.

6
00:00:20,970 --> 00:00:23,100
‫Zanurzmy się i zobaczmy, jak to działa.

7
00:00:24,150 --> 00:00:29,520
‫Do tej pory korzystaliśmy więc z funkcji C++, które zostały już dla nas stworzone.

8
00:00:29,520 --> 00:00:34,620
‫Używaliśmy take tych i możemy bawić się w pisanie ich funkcjonalności.

9
00:00:34,800 --> 00:00:38,100
‫Korzystamy też z funkcji, które napisali dla nas inni ludzie.

10
00:00:38,100 --> 00:00:40,830
‫Nazywaliśmy je np. zdobądź aktywną lokalizację i zdobądź imię.

11
00:00:41,370 --> 00:00:49,080
‫Jak możemy teraz stworzyć nowe własne funkcje, które pomogą uporządkować nasz kod i utrzymać te funkcje w niewielkich rozmiarach,

12
00:00:49,080 --> 00:00:51,630
‫a wszystko o wiele bardziej czytelne?

13
00:00:52,380 --> 00:00:57,930
‫Cóż, mamy już gotowe podstawowe elementy konstrukcyjne, zbliżając się do końca sekcji.

14
00:00:57,930 --> 00:01:00,300
‫Rozumiemy znacznie więcej o składni C++.

15
00:01:00,300 --> 00:01:08,100
‫Więc to, co chcę zrobić, to zasadniczo stworzyć nową funkcję na ruchomej platformie, która pozwoli nam

16
00:01:08,550 --> 00:01:12,360
‫mieć tylko wlot, powiedzmy wywołanie platformy przenoszenia.

17
00:01:12,930 --> 00:01:14,160
‫Dlaczego chcę to zrobić?

18
00:01:14,160 --> 00:01:20,250
‫Cóż, ponieważ możliwość wykonania takiego wywołania funkcji o nazwie MOVE Platform, naprawdę świadczy o tym, co

19
00:01:20,250 --> 00:01:22,560
‫próbujemy zrobić w tej chwili.

20
00:01:22,560 --> 00:01:28,380
‫Dużo się dzieje w dziedzinie technologii i nie jestem do końca jasne, dlaczego robimy to wszystko, jeśli po prostu

21
00:01:28,380 --> 00:01:34,230
‫podejdę i rzucę okiem na niego, jeśli wejdę w technologię i zobaczyłem funkcję, która mówi Przenieś platformę , no

22
00:01:34,710 --> 00:01:39,570
‫cóż, nagle mam kontekst tego, co te wszystkie rzeczy powinny robić i nie potrzebuję ani

23
00:01:39,570 --> 00:01:42,300
‫jednego komentarza, aby powiedzieć mi, co się dzieje.

24
00:01:42,510 --> 00:01:47,430
‫Będzie to szczególnie przydatne, gdy do miksu dodamy również możliwość obracania

25
00:01:47,430 --> 00:01:48,000
‫platformy.

26
00:01:48,930 --> 00:01:52,710
‫Jak więc definiujemy funkcje deklaracji?

27
00:01:52,710 --> 00:01:56,610
‫Cóż, aspekt deklaracji jest przerobiony w nagłówku akt.

28
00:01:56,610 --> 00:02:02,100
‫W tym miejscu zasadniczo mówimy, że heads up to C++, będziemy mieć funkcję, która będzie wyglądać mniej

29
00:02:02,100 --> 00:02:02,970
‫więcej tak.

30
00:02:03,390 --> 00:02:06,870
‫A potem w C++ faktycznie definiujemy funkcję.

31
00:02:06,870 --> 00:02:09,840
‫Dajemy mu ciało, mówimy dokładnie C++.

32
00:02:09,840 --> 00:02:12,390
‫Tak działa funkcja.

33
00:02:13,230 --> 00:02:16,020
‫Zobaczmy, jak możemy to zrobić.

34
00:02:16,470 --> 00:02:20,700
‫Mamy kilka przykładów funkcji i mamy duże możliwości, mamy technologię.

35
00:02:21,180 --> 00:02:28,860
‫To dobry moment, abyśmy przyjrzeli się różnym sekcjom, które mamy w pliku nagłówkowym.

36
00:02:29,070 --> 00:02:34,950
‫Mamy tu wzmiankę o publicznym i chronionym, a ponownie o publicznym.

37
00:02:35,490 --> 00:02:36,450
‫Co to oznacza?

38
00:02:36,450 --> 00:02:43,350
‫Te słowa kluczowe z dwukropkiem na końcu zasadniczo definiują sekcję dostępności.

39
00:02:43,350 --> 00:02:46,200
‫Te funkcje, skąd można uzyskać do nich dostęp.

40
00:02:46,770 --> 00:02:51,360
‫Widzieliśmy, jak bezpieczne jest normalne.

41
00:02:51,360 --> 00:02:57,930
‫Jest to funkcja, którą wywołujemy na wektorze F, ale wywołujemy ją z innej klasy, a nie

42
00:02:57,960 --> 00:02:59,670
‫z wektora F.

43
00:03:00,240 --> 00:03:04,860
‫Oznacza to, że dostępność tej funkcji musi być publiczna.

44
00:03:05,040 --> 00:03:09,690
‫Teraz zostawimy na bok chronione tylko na chwilę, ponieważ tam trochę się komplikuje.

45
00:03:10,020 --> 00:03:14,130
‫Istnieje jednak inny rodzaj słowa kluczowego, którego możemy użyć, a który jest prywatny.

46
00:03:14,730 --> 00:03:21,210
‫Dodam więc po ujęciu, dodam informację o słowach kluczowych private, że nie wcinam tych

47
00:03:21,210 --> 00:03:24,330
‫sekcji i wstawimy dwukropek na końcu.

48
00:03:24,330 --> 00:03:29,040
‫A to oznacza, że wszystko, co nastąpi później, aż do następnej sekcji, następne słowo

49
00:03:29,040 --> 00:03:31,440
‫kluczowe, które tu wstawiam, będzie prywatne.

50
00:03:31,860 --> 00:03:37,980
‫Oznacza to, że wzięliśmy wszystkie te zmienne i powiedzieliśmy: Hej, żadna inna klasa nie może ich dotknąć.

51
00:03:38,430 --> 00:03:42,660
‫I to jest zazwyczaj najlepsza praktyka, której do tej pory nie stosowaliśmy, ponieważ nie chciałem, aby

52
00:03:42,660 --> 00:03:44,400
‫sprawy były dla ciebie zbyt zagmatwane.

53
00:03:44,790 --> 00:03:49,320
‫Ale zmienne w klasach powinny generalnie być ich własnym biznesem.

54
00:03:49,320 --> 00:03:55,950
‫Jest to jeden z głównych dzierżawców programowania obiektowego, w którym pozostawiamy klasom zarządzanie ich własnymi zmiennymi

55
00:03:55,950 --> 00:04:02,040
‫i uzyskujemy do nich dostęp tylko za pomocą funkcji, które klasa określa jako publiczne.

56
00:04:03,180 --> 00:04:08,010
‫Więc zamierzamy tutaj dodać więcej prywatnych funkcji, ponieważ nie chcemy, aby

57
00:04:08,010 --> 00:04:12,090
‫coś takiego jak Move Platform było wywoływane spoza klasy.

58
00:04:12,390 --> 00:04:16,320
‫Chcemy, aby był zarządzany przez naszą własną funkcję techniczną.

59
00:04:16,950 --> 00:04:20,340
‫Jak więc zdefiniować funkcję prywatną?

60
00:04:20,340 --> 00:04:22,620
‫Cóż, umieściliśmy to w sekcji prywatnej.

61
00:04:22,620 --> 00:04:24,600
‫Więc mamy tutaj nasze prywatne słowo kluczowe.

62
00:04:24,810 --> 00:04:31,410
‫Umieszczę go jednak po naszych zmiennych i zaczniemy od typu zwracanego.

63
00:04:31,410 --> 00:04:38,670
‫A jeśli nasza funkcja niczego nie zwraca, po prostu wpisujemy void, aby wskazać, że nie ma zwrotu z

64
00:04:38,670 --> 00:04:39,780
‫tej funkcji.

65
00:04:40,530 --> 00:04:42,540
‫Następnie nadajemy mu nazwę funkcji.

66
00:04:42,540 --> 00:04:51,110
‫Więc przenieś platformę było tym, czego chcieliśmy, a następnie dajemy jej kilka nawiasów, aby wskazać, że jest to funkcja, którą otwieramy

67
00:04:51,120 --> 00:04:57,270
‫i zamykamy nawiasy, a następnie średnik, aby zakończyć linię i powiedzieć, w porządku, to wszystko.

68
00:04:57,270 --> 00:05:03,180
‫To jest funkcja, którą chcę zadeklarować tutaj w pliku nagłówkowym i wszystko, co robi.

69
00:05:03,230 --> 00:05:04,970
‫Mówi To jest kształt funkcji.

70
00:05:04,970 --> 00:05:06,020
‫To jest powrót.

71
00:05:06,200 --> 00:05:11,630
‫To są parametry, które przyjmuje, nazwa i klasa, do której należy.

72
00:05:11,660 --> 00:05:16,250
‫Teraz, aby faktycznie nadać mu implementację, musimy ją zdefiniować w pliku C++.

73
00:05:16,250 --> 00:05:17,330
‫Więc chodźmy tam.

74
00:05:17,870 --> 00:05:23,480
‫A na końcu pliku, tuż poza nawiasami klamrowymi, robimy to tutaj.

75
00:05:23,510 --> 00:05:25,610
‫Zaczynamy od nowa z typem zwrotu.

76
00:05:25,610 --> 00:05:31,970
‫Więc to będzie puste, ponieważ jesteśmy w pliku C++, a nie w nawiasach klamrowych

77
00:05:31,970 --> 00:05:32,710
‫klasy.

78
00:05:32,720 --> 00:05:41,330
‫Musimy użyć operatora rozpoznawania zakresu, aby powiedzieć, że próbujemy zdefiniować funkcję z poziomu ruchomej klasy

79
00:05:41,330 --> 00:05:42,550
‫platformy.

80
00:05:42,560 --> 00:05:49,130
‫Wpisujemy więc nazwę klasy, która jest ruchomą platformą, pamiętając, że przedrostek oznacza, że jest

81
00:05:49,130 --> 00:05:50,390
‫to aktor.

82
00:05:51,380 --> 00:05:55,940
‫Następnie używamy dwukropka, dwukropka, operatora rozwiązywania zakresu, a następnie używamy nazwy

83
00:05:55,940 --> 00:05:58,700
‫funkcji, którą definiujemy, czyli platformy MOVE.

84
00:05:59,420 --> 00:06:03,400
‫A potem używamy tego samego zestawu parametrów, co w pliku nagłówkowym.

85
00:06:03,410 --> 00:06:07,700
‫W tym przypadku mieliśmy pusty zestaw parametrów, więc mamy tylko nawiasy.

86
00:06:08,390 --> 00:06:15,200
‫A potem zamiast umieszczać średnik na końcu tej linii w nowej linii, wstawiamy otwierający nawias

87
00:06:15,200 --> 00:06:18,590
‫klamrowy i odpowiadający mu zamykający nawias klamrowy.

88
00:06:19,070 --> 00:06:24,830
‫A między tymi nawiasami klamrowymi, w których umieszczamy kod naszej funkcji, fantastycznie.

89
00:06:24,830 --> 00:06:29,720
‫Więc to, co chcę teraz zrobić, to spróbować i powiedzieć, no cóż, cała ta funkcjonalność, którą mamy tutaj, i

90
00:06:29,720 --> 00:06:32,270
‫tak naprawdę usunę komentarze, ponieważ już ich nie potrzebujemy.

91
00:06:32,270 --> 00:06:38,120
‫Były to pseudokod, którego użyliśmy do zaimplementowania tego, ale teraz w pewnym sensie spełniło to swoje zadanie.

92
00:06:38,120 --> 00:06:40,160
‫Rozumiemy, co robią wiersze kodu.

93
00:06:40,640 --> 00:06:48,860
‫Wyjmę wszystko oprócz funkcji move platformy z ujęcia i skopiuję ją i wkleję do

94
00:06:48,860 --> 00:06:51,290
‫naszej funkcji platformy MOVE.

95
00:06:52,100 --> 00:06:57,710
‫Więc to powinno działać prawie tak samo, ponieważ kiedy wchodzimy w technologię, wywołujemy platformę move i

96
00:06:57,710 --> 00:06:59,510
‫uruchamiamy ten sam fragment kodu.

97
00:06:59,510 --> 00:07:05,870
‫Tyle że teraz połączyliśmy go w funkcję, co ułatwia nam czytanie i potencjalnie ponowne użycie w

98
00:07:05,870 --> 00:07:06,710
‫przyszłości.

99
00:07:07,250 --> 00:07:11,150
‫Ale jeśli to zrobisz, zauważysz, że jest problem.

100
00:07:11,930 --> 00:07:19,820
‫Uzyskujemy dostęp do czasu Delta i jest to parametr, do którego nie mamy już dostępu, ponieważ był to parametr przekazany

101
00:07:19,820 --> 00:07:20,870
‫do technologii.

102
00:07:21,500 --> 00:07:29,600
‫Więc jeśli chcemy to uzyskać, musimy mieć parametr w naszej funkcji.

103
00:07:30,080 --> 00:07:32,960
‫Więc kiedy definiujemy parametry, musimy to zrobić w dwóch miejscach.

104
00:07:32,960 --> 00:07:37,490
‫Podobnie jak podczas definiowania funkcji, wracamy do pliku nagłówkowego i między

105
00:07:37,820 --> 00:07:40,130
‫nawiasami naszej funkcji platformy MOVE.

106
00:07:40,130 --> 00:07:45,710
‫W tym miejscu mówimy, jakich parametrów chcemy i jest to dokładnie tak, jak definiowanie zmiennej.

107
00:07:45,710 --> 00:07:48,080
‫Musisz nadać mu typ i nadać mu nazwę.

108
00:07:48,080 --> 00:07:52,970
‫Więc powiemy, że będzie to typ zmiennoprzecinkowy i możemy go po prostu nazwać czasem delta.

109
00:07:52,970 --> 00:07:54,290
‫Nie musi to być ta sama nazwa.

110
00:07:54,290 --> 00:07:55,010
‫Moglibyśmy to tak nazwać.

111
00:07:55,220 --> 00:07:56,630
‫Moglibyśmy to nazwać czasem.

112
00:07:56,990 --> 00:08:03,470
‫Ale łatwiej nadać mu taką samą nazwę, bo wtedy dla każdego, kto go czyta, jest oczywiste, co należy

113
00:08:03,470 --> 00:08:04,310
‫tutaj przekazać.

114
00:08:04,520 --> 00:08:09,530
‫Następnie w pliku C++ musimy dopasować listę parametrów.

115
00:08:09,530 --> 00:08:13,730
‫Więc znowu możesz to zrobić, kopiując i wklejając lub wpisując.

116
00:08:13,730 --> 00:08:18,020
‫Jeśli to wypiszesz, upewnij się, że nie popełnisz żadnych literówek, ponieważ kompilator będzie narzekał.

117
00:08:18,470 --> 00:08:24,680
‫Tak więc będziemy mieli liczbę zmiennoprzecinkową o nazwie Delta Time przekazywaną jako parametr lub zdefiniowaną jako parametr

118
00:08:24,680 --> 00:08:30,740
‫do przenoszenia platformy, ale w rzeczywistości nie przekazaliśmy jej jako argumentu do przenoszenia platformy w tiku.

119
00:08:30,740 --> 00:08:34,440
‫I zobaczysz, że mam tu małą czerwoną falistą linię, bardzo, bardzo.

120
00:08:34,490 --> 00:08:40,700
‫Mówi, że w wywołaniu funkcji jest za mało argumentów, ponieważ zdefiniowałem je w pliku

121
00:08:40,700 --> 00:08:46,130
‫nagłówkowym, a teraz w C++, a także wymagam jednego parametru typu float.

122
00:08:46,730 --> 00:08:48,710
‫Więc muszę podać ten parametr.

123
00:08:48,710 --> 00:08:52,100
‫Więc upewnię się, że jest to parametr, który podaję.

124
00:08:52,100 --> 00:08:58,520
‫Wartość, którą podaję, pochodzi ze zmiennej Delta time lub parametru Delta time z tiku.

125
00:08:59,030 --> 00:09:03,890
‫Tak więc robimy wątki, wartość jest przekazywana do tiku, następnie jest przekazywana

126
00:09:03,890 --> 00:09:11,930
‫do platformy move i kończy się w parametrze w funkcji platformy MOVE, gdzie można jej użyć do wykonania i przeniesienia

127
00:09:11,930 --> 00:09:12,800
‫funkcjonalności platformy.

128
00:09:12,800 --> 00:09:18,710
‫Więc chciałbym, żebyś stworzył swoją własną funkcję platformy rotacji, którą wywołamy z TIC.

129
00:09:19,010 --> 00:09:23,690
‫Więc dodasz go do pliku nagłówkowego, tak jak zrobiliśmy to dla naszej funkcji platformy MOVE.

130
00:09:23,690 --> 00:09:26,360
‫Dodamy go również do pliku C++ w ten sam sposób.

131
00:09:26,360 --> 00:09:33,950
‫Więc weź wskazówki ze sposobu, w jaki zrobiliśmy to dla tych funkcji, a następnie wywołaj to z funkcji tik.

132
00:09:34,250 --> 00:09:40,040
‫Upewnij się, że przechodzisz w czasie Delta i definiujesz wszelkie parametry, aby umożliwić

133
00:09:40,520 --> 00:09:45,920
‫przejście w czasie Delta i zaimplementuj treść platformy Rotate, aby wylogowała komunikat.

134
00:09:45,920 --> 00:09:51,350
‫W rzeczywistości nie będzie jeszcze obracać platformy, ale jako symbol zastępczy, aby upewnić się, że faktycznie

135
00:09:51,350 --> 00:09:56,120
‫jest to nazywane komunikatem dziennika przy użyciu dziennika interfejsu użytkownika, o którym się dowiedzieliśmy.

136
00:09:56,450 --> 00:09:58,160
‫Wstrzymaj wideo i spróbuj.

137
00:10:01,630 --> 00:10:02,080
‫Dobra.

138
00:10:02,080 --> 00:10:02,800
‫Witamy spowrotem.

139
00:10:02,830 --> 00:10:09,070
‫Zaczniemy więc od pliku nagłówkowego i będziemy w większości robić to samo, co w przypadku naszej

140
00:10:09,070 --> 00:10:10,020
‫platformy MOVE.

141
00:10:10,030 --> 00:10:14,380
‫Umieścimy go w sekcji prywatnej, aby był dostępny tylko w naszej klasie.

142
00:10:14,890 --> 00:10:19,720
‫Nadam mu typ void return, nazwiemy to platformą rotacyjną.

143
00:10:19,870 --> 00:10:21,400
‫Otworzymy listę parametrów.

144
00:10:21,400 --> 00:10:25,180
‫I w nim umieścimy jeden parametr, który będzie

145
00:10:25,180 --> 00:10:30,670
‫miał typ float, nazwiemy go Delta time, zamkniemy parametry i zakończymy średnikiem.

146
00:10:31,270 --> 00:10:36,280
‫Teraz większość tego, co robimy w pliku C++, jest dokładnie takie samo, jak w nagłówku pliku.

147
00:10:36,280 --> 00:10:41,380
‫Więc właściwie skopiuję tę linię, przejdę do pliku C++ i pokażę, co jest inne.

148
00:10:41,800 --> 00:10:46,990
‫Przejdę więc do nowej pustej linii na końcu pliku, wkleję ją, a co się zmieniło,

149
00:10:46,990 --> 00:10:50,200
‫to tutaj, potrzebujemy operatora rozwiązywania zakresu i nazwy klasy.

150
00:10:50,620 --> 00:10:57,820
‫Więc będziemy mieli ruchomą platformę, okrężnicę, platformę obrotową okrężnicy.

151
00:10:58,360 --> 00:11:01,330
‫Następnie mamy listę parametrów i nie potrzebujemy średnika na końcu.

152
00:11:01,330 --> 00:11:06,940
‫Usuń więc średnik, dodaj nową linię i atakuj nawiasy klamrowe zamiast nowej linii między tymi dwoma

153
00:11:06,940 --> 00:11:07,900
‫nawiasami klamrowymi.

154
00:11:08,680 --> 00:11:12,010
‫Więc to, co chcemy tutaj zrobić, to wydrukować komunikat dziennika.

155
00:11:12,010 --> 00:11:14,920
‫Więc zamierzam wpisać log, naciśnij enter.

156
00:11:15,460 --> 00:11:17,260
‫Będzie to po prostu prosty komunikat na wyświetlaczu.

157
00:11:17,680 --> 00:11:24,190
‫A w tekście zamierzam umieścić nazwę naszej platformy.

158
00:11:24,550 --> 00:11:31,090
‫Więc to będzie procent s, potem wpiszemy obracającą się kropkę, kropkę, kropkę, a potem

159
00:11:31,090 --> 00:11:32,530
‫przekażę nazwę.

160
00:11:32,530 --> 00:11:37,570
‫Teraz moglibyśmy umieścić to w zmiennej, ale ponieważ jest to dość krótka

161
00:11:37,600 --> 00:11:44,980
‫linia, wpiszę po prostu star, pobierz nazwę, a następnie wstawię nawiasy, abyśmy w zasadzie tutaj wywołali nazwę get

162
00:11:44,980 --> 00:11:45,580
‫name.

163
00:11:45,580 --> 00:11:48,040
‫To jest wyrażenie, które przejmuje łańcuch.

164
00:11:48,370 --> 00:11:53,350
‫A następnie konwertujemy ten wynik, aby umieścić go w naszym komunikacie dziennika.

165
00:11:53,950 --> 00:12:00,010
‫Tak więc ze wszystkich naszych platform spodziewam się, że rotacja zostanie wydrukowana, ale stanie się to tylko wtedy,

166
00:12:00,010 --> 00:12:01,360
‫gdy nazwać to technologią.

167
00:12:01,360 --> 00:12:09,130
‫Przejdźmy więc do funkcji tick po tym, jak platforma MOVE może dodać nową linię i wywołać platformę rotacyjną.

168
00:12:09,730 --> 00:12:11,290
‫I musimy zobaczyć.

169
00:12:11,290 --> 00:12:16,840
‫Kiedy otwieram nawiasy, daje mi to wskazówkę, że muszę przekazać argument za czasem Delta.

170
00:12:16,840 --> 00:12:21,340
‫Więc znowu, po prostu przekażemy tę samą zmienną czasu Delta od wewnątrz.

171
00:12:21,490 --> 00:12:24,790
‫I tak jak powiedziałem, imiona tutaj nie muszą być takie same.

172
00:12:24,790 --> 00:12:28,480
‫Więc ten czas delta musi być zgodny z czasem delta w technologii.

173
00:12:29,080 --> 00:12:34,330
‫Możemy jednak zamiast tego wywołać zmienną w ramach rotacji daty platformy.

174
00:12:34,330 --> 00:12:39,520
‫I gdziekolwiek użyjemy go w ramach platformy rotacji, musielibyśmy użyć ADT, nazwy parametru i

175
00:12:39,520 --> 00:12:41,380
‫argumentu mogą być zasadniczo różne.

176
00:12:41,470 --> 00:12:46,840
‫Przejdźmy więc do Unreal i wciśnij kompilację, ponieważ wprowadziliśmy kilka zmian w pliku nagłówkowym.

177
00:12:46,840 --> 00:12:52,930
‫Kompilacja będzie nieco dłuższa niż w przypadku, gdy właśnie zmieniliśmy plik C++, a po zakończeniu

178
00:12:52,930 --> 00:12:57,580
‫kompilacji przejdziemy do przodu, wciśniemy odtwarzanie i otworzymy dziennik wyjściowy.

179
00:12:58,030 --> 00:13:04,000
‫I widać, że rzeczywiście wyświetlamy komunikaty dziennika dotyczące każdej z rotujących platform.

180
00:13:04,000 --> 00:13:08,590
‫Wygląda więc na to, że nasza funkcja jest skutecznie wywoływana w technologii.

181
00:13:09,070 --> 00:13:09,580
‫Świetna sprawa.

182
00:13:09,580 --> 00:13:14,830
‫Teraz rozumiemy, jak tworzyć własne funkcje, które są członkami klasy.

183
00:13:15,280 --> 00:13:21,250
‫Jest to bardzo przydatne narzędzie do ponownego wykorzystania kodu, ale także do organizowania go tak, jak w Blueprint.

184
00:13:21,760 --> 00:13:23,470
‫Do zobaczenia na następnym wykładzie.

