﻿1
00:00:04,550 --> 00:00:05,740
‫Cześć i witaj.

2
00:00:05,750 --> 00:00:11,270
‫W tym wykładzie zaczniemy dodawać jeszcze więcej funkcji do naszego drzewa

3
00:00:11,270 --> 00:00:17,150
‫zachowań, dodając niestandardowe zadanie, tę czystą wartość tablicy, którą zrobimy całkowicie niestandardową w

4
00:00:17,150 --> 00:00:17,960
‫C++.

5
00:00:18,230 --> 00:00:19,970
‫Zanurzmy się i zobaczmy, jak to zrobić.

6
00:00:21,280 --> 00:00:21,440
‫Dobra.

7
00:00:21,460 --> 00:00:28,740
‫Chciałbym więc rozwinąć zachowanie tego drzewa zachowań, abyśmy mogli zbadać.

8
00:00:28,750 --> 00:00:32,830
‫A kiedy skończymy śledztwo, wracamy do domu.

9
00:00:33,130 --> 00:00:40,000
‫Dodam więc później mały ruch do zadania, który po prostu przeniesie nas do miejsca początkowego.

10
00:00:40,720 --> 00:00:47,080
‫Aby się tam dostać, musimy mieć pojęcie, czy odwiedziliśmy już ostatnią

11
00:00:47,080 --> 00:00:48,910
‫znaną lokalizację gry.

12
00:00:49,360 --> 00:00:54,430
‫Sposób, w jaki zamierzam to zrobić, polega zasadniczo na usunięciu ostatniej znanej lokalizacji gry, gdy już

13
00:00:54,430 --> 00:00:55,360
‫ją zbadamy.

14
00:00:55,900 --> 00:01:00,730
‫Teraz, jeśli obecnie nie mamy na to sposobu, ale przede wszystkim stwórzmy dekoratora.

15
00:01:00,910 --> 00:01:09,130
‫Więc dodany dekorator do śledztwa tablica, która ma zamiar przejść i zmienić jej nazwę, zbadał

16
00:01:09,130 --> 00:01:10,930
‫w ten sposób.

17
00:01:11,440 --> 00:01:16,360
‫A to sprawdzi, czy ustawiono ostatnią znaną lokalizację.

18
00:01:16,870 --> 00:01:22,810
‫A to oznacza, że potrzebujemy jakiegoś węzła, który pozwoli nam rozbroić klawisz tablicy.

19
00:01:23,800 --> 00:01:25,390
‫Teraz to jeszcze nie istnieje.

20
00:01:25,390 --> 00:01:26,560
‫Myślałem, że tak, ale tak nie jest.

21
00:01:26,590 --> 00:01:31,150
‫Jest to dla mnie świetna okazja, aby pokazać, jak możemy stworzyć niestandardowe zadanie.

22
00:01:31,450 --> 00:01:35,390
‫Teraz możesz to zrobić bardzo łatwo, korzystając z planów lub gdzie?

23
00:01:35,480 --> 00:01:39,760
‫Pokażę ci nieco Hardaway, ale ten, który daje ci dużo mocy, robi to

24
00:01:39,760 --> 00:01:40,780
‫za pomocą C++.

25
00:01:41,530 --> 00:01:48,670
‫Więc przejdziemy do naszej głównej przeglądarki treści, przejdźmy do dodania nowej i przejdź do nowej klasy C++.

26
00:01:48,670 --> 00:01:54,220
‫I będziemy chcieli pokazać pole wyboru wszystkich zajęć, a następnie szukamy B. T. Zadanie.

27
00:01:54,640 --> 00:01:56,710
‫A tutaj jest wiele opcji.

28
00:01:57,050 --> 00:02:03,700
‫Widać, że wiele z nich to w rzeczywistości te wbudowane zadania, takie jak hałasowanie, ruch tutaj

29
00:02:03,700 --> 00:02:04,630
‫lub czekanie.

30
00:02:05,200 --> 00:02:08,910
‫Teraz możesz przyjrzeć się C++, aby zobaczyć, jak są one zaimplementowane.

31
00:02:08,920 --> 00:02:09,850
‫To zawsze się przydaje.

32
00:02:10,270 --> 00:02:13,660
‫Ale to, co nas interesuje, to z czego powinniśmy odziedziczyć?

33
00:02:13,660 --> 00:02:16,930
‫Czego powinniśmy użyć jako podstawy dla naszego własnego węzła?

34
00:02:17,410 --> 00:02:18,970
‫Teraz jest kilka opcji.

35
00:02:18,980 --> 00:02:25,360
‫Możesz wybrać węzeł zadania jako podstawę lub możesz użyć podstawy tablicy.

36
00:02:25,390 --> 00:02:26,830
‫Jaka jest różnica między tymi dwoma?

37
00:02:27,520 --> 00:02:28,390
‫Rzućmy okiem.

38
00:02:28,780 --> 00:02:31,890
‫Więc przejdź do faktycznie używa podstawy tablicy.

39
00:02:31,900 --> 00:02:39,070
‫A to oznacza, że ma rozwijany klawisz tablicy, który pozwala nam wybrać klawisz tablicy do

40
00:02:39,070 --> 00:02:40,060
‫pracy.

41
00:02:40,300 --> 00:02:45,880
‫Oznacza to, że nie musimy na sztywno kodować w naszym zadaniu klawiszy tablicy, z którymi pracujemy, co jest

42
00:02:45,880 --> 00:02:49,750
‫świetne, ponieważ pozwala nam ponownie wykorzystać te zadania w różnych sytuacjach.

43
00:02:50,110 --> 00:02:54,740
‫Więc jeśli potrzebujesz klucza do tablicy, to podstawa tablicy jest świetnym wyborem.

44
00:02:54,760 --> 00:02:56,410
‫W przeciwnym razie użyjesz drugiego.

45
00:02:56,890 --> 00:03:02,300
‫Więc chodźmy i dodajmy nowe, dodajmy ponownie nową klasę C++, pokaż wszystkie klasy i znów szukamy

46
00:03:02,440 --> 00:03:03,520
‫zadania beatu.

47
00:03:03,520 --> 00:03:06,670
‫I nadal wybieramy hit Blackboard Base jako następny.

48
00:03:07,000 --> 00:03:14,410
‫Teraz zmienię nazwę na Beat Task, podkreślę wartość jasnej tablicy.

49
00:03:15,370 --> 00:03:18,160
‫Zamierzam iść dalej i stworzyć tę klasę tutaj.

50
00:03:18,850 --> 00:03:20,410
‫Teraz początkowo to się nie powiedzie.

51
00:03:20,410 --> 00:03:20,920
‫Więc kliknijmy.

52
00:03:20,920 --> 00:03:23,230
‫Tak i zobacz, jaki jest tutaj komunikat o błędzie.

53
00:03:23,770 --> 00:03:30,040
‫Mówi coś o L i K, co oznacza nierozwiązany zewnętrzny symbol linku, bla, bla, bla.

54
00:03:30,070 --> 00:03:35,500
‫Zwykle, gdy otrzymujesz tego rodzaju błąd z linkera, oznacza to, że masz coś w

55
00:03:35,500 --> 00:03:43,000
‫głowie z plikami, czego nie ma w Twoim C++ lub w tym przypadku oznacza to, że nie ma modułu, który

56
00:03:43,000 --> 00:03:44,560
‫na których polegamy.

57
00:03:45,010 --> 00:03:51,970
‫I na podstawie typów symboli, których szuka, widzę tutaj, że jest to interfejs właściciela zadania gry

58
00:03:51,970 --> 00:03:52,510
‫AI.

59
00:03:53,050 --> 00:03:58,870
‫Wydaje się, że szuka czegoś wspólnego z zadaniami związanymi z grą, a w rzeczywistości jest to moduł.

60
00:03:58,880 --> 00:04:05,740
‫Więc jeśli przejdziemy do kodu Visual Studio i po prostu otworzymy przeglądarkę plików, to po prostu przewinie się

61
00:04:05,740 --> 00:04:07,030
‫do mojego projektu.

62
00:04:07,360 --> 00:04:12,210
‫Następnie pod source simple shooter powinien znajdować się prosty shooter dot build, kropka C.

63
00:04:12,280 --> 00:04:14,350
‫Więc jakakolwiek nazwa twojego projektu to Dot Builders.

64
00:04:14,350 --> 00:04:14,650
‫Tak.

65
00:04:15,130 --> 00:04:21,160
‫A tutaj, jeśli dam nam trochę więcej miejsca, widać, że mamy te publiczne zależności,

66
00:04:21,160 --> 00:04:22,030
‫nazwy modułów.

67
00:04:22,180 --> 00:04:29,470
‫A nazwa modułu, którą chcemy dodać do tej listy, będzie grą.

68
00:04:30,920 --> 00:04:37,370
‫Zadania z literą S i jeśli pójdziemy dalej i dodamy to, wrócimy i skompilujemy teraz, miejmy nadzieję, że wszystko

69
00:04:37,370 --> 00:04:40,040
‫powinno się pomyślnie skompilować z jakiegokolwiek powodu.

70
00:04:40,040 --> 00:04:44,480
‫Nie jest to automatycznie dodawane, gdy nadpisujesz zadanie beatu.

71
00:04:44,720 --> 00:04:48,470
‫Teraz, kiedy już to zrobimy, chodźmy i przyjrzyjmy się, co zostało tutaj stworzone.

72
00:04:49,100 --> 00:04:56,480
‫Powinniśmy mieć nową klasę, czyli nasze zadanie beta, klip podkreślenia, wartość tablicy.

73
00:04:56,840 --> 00:04:58,910
‫I w tej chwili jest całkiem pusto.

74
00:04:59,420 --> 00:05:05,090
‫Teraz chcę zrobić, gdybyśmy w tej chwili dodali to do naszego drzewa zachowań, miałoby

75
00:05:05,090 --> 00:05:06,140
‫brzydką nazwę.

76
00:05:06,440 --> 00:05:09,920
‫Dlatego chcemy mieć dla tego zadania ładną, czytelną dla człowieka nazwę.

77
00:05:10,280 --> 00:05:14,660
‫Sposób, w jaki zamierzamy to zrobić, to dodanie konstruktora i ustawienie właściwości.

78
00:05:14,660 --> 00:05:17,330
‫Stwórzmy więc tutaj konstruktora publicznego.

79
00:05:17,990 --> 00:05:21,350
‫Konstruktor zawsze ma taką samą nazwę jak klasa, więc możemy to skopiować.

80
00:05:21,600 --> 00:05:26,660
‫Nie trzeba brać żadnego średnika na końcu, a potem stwórzmy implementację

81
00:05:26,660 --> 00:05:27,950
‫w C++.

82
00:05:28,640 --> 00:05:33,920
‫A implementacja musi tylko ustawić zmienną o nazwie nazwa węzła.

83
00:05:34,280 --> 00:05:40,760
‫Więc jeśli ustawisz nazwę węzła, a następnie użyjesz ciągu, to ustawiony przez nas ciąg będzie nazwą węzła.

84
00:05:40,760 --> 00:05:42,920
‫Więc to będzie czysta tablica.

85
00:05:44,120 --> 00:05:48,710
‫Wartość tylko ze spacjami poprawnymi wielkimi literami powinna być łatwa i przyjemna.

86
00:05:48,740 --> 00:05:54,020
‫Jedna rzecz, o której zapomniałem w czasie nagrywania, to otoczyć to makro tekstowym.

87
00:05:54,350 --> 00:05:59,540
‫Teraz powinieneś zrobić to w swoim kodzie, ale zobaczysz, że w moim kodzie będzie to trwało i

88
00:05:59,840 --> 00:06:01,220
‫po prostu tak będzie.

89
00:06:01,850 --> 00:06:04,940
‫Powinniśmy być w stanie teraz to skompilować.

90
00:06:06,680 --> 00:06:08,900
‫Niesamowite, pomyślnie skompilowane.

91
00:06:09,470 --> 00:06:11,960
‫Wzywam więc do dodania tego nowego węzła.

92
00:06:12,290 --> 00:06:17,030
‫Dodaj go więc na końcu zachowania dochodzenia i po prostu sprawdź, czy się zakończyło.

93
00:06:17,030 --> 00:06:22,370
‫Zasadniczo powinno się to automatycznie zakończyć bez robienia czegokolwiek, ale sprawdź, czy nazwa jest poprawna,

94
00:06:22,370 --> 00:06:22,970
‫zaznaczona.

95
00:06:22,970 --> 00:06:26,210
‫Są w stanie to dodać i przyjrzymy się dodawaniu zachowania w następnym wykładzie.

96
00:06:26,220 --> 00:06:27,320
‫Więc zatrzymaj wideo i spróbuj.

97
00:06:28,640 --> 00:06:29,080
‫Dobra.

98
00:06:29,090 --> 00:06:29,630
‫Witamy spowrotem.

99
00:06:29,690 --> 00:06:35,600
‫Przejdźmy więc do Enemy II i dodajmy na końcu śledztwa.

100
00:06:35,600 --> 00:06:39,380
‫Dodamy naszą wyraźną wartość tablicy.

101
00:06:39,380 --> 00:06:41,210
‫Widać, że ma tam ładną nazwę.

102
00:06:41,630 --> 00:06:45,590
‫Możesz też zobaczyć, że jeśli przejdziesz do okienka szczegółów, możesz wybrać klawisz tablicy.

103
00:06:45,590 --> 00:06:47,960
‫Zamierzamy wybrać miejsce odtwarzania nazwiska.

104
00:06:47,960 --> 00:06:53,180
‫Mimo że to jeszcze nic nie daje, widać, że mamy tę funkcjonalność, ponieważ

105
00:06:53,180 --> 00:06:58,190
‫odziedziczyliśmy po Blackboard Base i po prostu sprawdźmy, czy uzupełnia się automatycznie.

106
00:06:58,190 --> 00:07:00,770
‫Powinno wystarczyć, a potem powinno iść dalej.

107
00:07:00,770 --> 00:07:06,560
‫Przejdźmy później do zadania z ciężarkami, abyśmy mogli zobaczyć, że po prostu przechodzi przez proste i

108
00:07:06,560 --> 00:07:07,790
‫kończy się automatycznie.

109
00:07:08,240 --> 00:07:17,420
‫Zamierzam więc zagrać, chowam się za rogiem tak często, jak tylko mogę, a potem pójdę i przyjrzę

110
00:07:17,420 --> 00:07:23,030
‫się śledztwu, przez które przeszło, a on mnie widział.

111
00:07:23,030 --> 00:07:26,930
‫Więc chodźmy i ukryjmy się ponownie i ukryjmy się za rogiem, jeśli mogę.

112
00:07:28,520 --> 00:07:31,510
‫Pójdę, a potem pójdę do nich.

113
00:07:31,520 --> 00:07:35,790
‫Przeszedł przez wyraźną wartość tablicy, co musi oznaczać, że się udało, ponieważ wiemy,

114
00:07:35,790 --> 00:07:40,730
‫że jeśli była to sekwencja i się nie powiodła, musiała się zatrzymać i nie wchodzić na wagę.

115
00:07:41,180 --> 00:07:42,890
‫Więc to działa poprawnie.

116
00:07:42,890 --> 00:07:48,630
‫Wyraźna wartość tablicy to po prostu powrót do sukcesu od razu i przejście do czekania na następny krok.

117
00:07:48,650 --> 00:07:51,710
‫Przyjrzymy się, jak faktycznie możemy dodać funkcjonalność.

118
00:07:51,950 --> 00:07:52,550
‫Zobaczę tam.

