﻿1
00:00:04,780 --> 00:00:05,920
‫Cześć i witaj.

2
00:00:05,920 --> 00:00:11,800
‫Na tym wykładzie dowiemy się, w jaki sposób możemy uzyskać dane wyjściowe z funkcji w C++.

3
00:00:12,130 --> 00:00:18,940
‫Wykorzystamy to, aby znacznie uprościć nasz kod i zacząć implementować część tego pseudokodu, który

4
00:00:18,940 --> 00:00:19,750
‫napisaliśmy.

5
00:00:19,780 --> 00:00:20,560
‫Zanurzmy się.

6
00:00:21,070 --> 00:00:26,290
‫Więc zanim spróbujemy zrozumieć wartości zwracane z funkcji, zróbmy krótki objazd i zrozummy to.

7
00:00:26,290 --> 00:00:29,110
‫Dwa pojęcia dodają nam jeszcze dwa pojęcia do naszego kolosalnego.

8
00:00:29,650 --> 00:00:32,080
‫Więc pierwszy to wyrażenie.

9
00:00:32,080 --> 00:00:36,880
‫Wyrażenie to fragment kodu, który generuje wartość.

10
00:00:37,120 --> 00:00:42,940
‫I jest jeszcze instrukcja, która jest fragmentem kodu, który jest akcją do wykonania.

11
00:00:43,660 --> 00:00:50,980
‫Teraz te dwie rzeczy mają związek w tym, że wyrażenie prawie zawsze jest stwierdzeniem, że

12
00:00:51,130 --> 00:00:56,830
‫aby obliczyć wartość fragmentu kodu, musi to być akcja do wykonania.

13
00:00:57,250 --> 00:01:00,970
‫Ale to samo niekoniecznie jest prawdą na odwrót.

14
00:01:00,970 --> 00:01:04,510
‫Stwierdzenie nie zawsze da ci wartość.

15
00:01:04,990 --> 00:01:09,850
‫Przyjrzyjmy się więc przykładom wyrażeń i rzeczom, które nie pochodzą z kodu, który

16
00:01:09,850 --> 00:01:10,720
‫już napisaliśmy.

17
00:01:11,260 --> 00:01:20,350
‫Więc kiedy wpisujemy mój wektor do C++, jest to wyrażenie, ponieważ ma wartość tego, co jest przechowywane wewnątrz

18
00:01:20,350 --> 00:01:22,300
‫mojej zmiennej wektora.

19
00:01:22,570 --> 00:01:24,700
‫To samo dotyczy wektora lokalnego.

20
00:01:24,720 --> 00:01:32,500
‫W rzeczywistości, jeśli masz wektor lokalny plus kropka z, to samo w sobie jest wyrażeniem i wektorem lokalnym kropka z

21
00:01:32,500 --> 00:01:33,670
‫plus 100.

22
00:01:33,940 --> 00:01:40,570
‫To samo w sobie jest wyrażeniem, ponieważ lokalny wektor kropka z dał ci wartość wewnątrz elementu

23
00:01:40,870 --> 00:01:41,410
‫Z.

24
00:01:41,710 --> 00:01:46,900
‫A kiedy dodasz 100, otrzymasz nową wartość, która ma dodanie 100.

25
00:01:46,900 --> 00:01:48,430
‫Więc to wszystko są wyrażenia.

26
00:01:49,030 --> 00:01:55,330
‫Jednak coś, co nie jest wyrażeniem, jest wtedy, gdy zadeklarowaliśmy nasz wektor lokalny, kiedy powiedzieliśmy wektor, wektor lokalny jest

27
00:01:55,330 --> 00:01:58,810
‫równy mojemu wektorowi i wstawiliśmy średnik na końcu linii.

28
00:01:58,810 --> 00:02:00,970
‫Nie możemy tego użyć do uzyskania wartości.

29
00:02:00,970 --> 00:02:02,530
‫Nie ma tam żadnej wartości.

30
00:02:02,530 --> 00:02:06,160
‫Po prostu mówi C++, że Oto akcja, którą musisz wykonać.

31
00:02:06,430 --> 00:02:09,100
‫Chcę, żebyś utworzył nowy wektor lokalny.

32
00:02:09,460 --> 00:02:11,740
‫Więc to nie jest wyrażenie.

33
00:02:12,370 --> 00:02:16,960
‫Jednak czymś, co jest wyrażeniem, jest uzyskanie lokalizacji aktora.

34
00:02:16,960 --> 00:02:20,920
‫Jest to funkcja, którą wywołujemy, ponieważ na końcu znajdują się nawiasy.

35
00:02:20,920 --> 00:02:22,660
‫Właściwie nie mamy tutaj żadnych argumentów.

36
00:02:22,660 --> 00:02:26,230
‫To jest pusta lista argumentów, ale coś wywołuje.

37
00:02:26,230 --> 00:02:34,720
‫A ponieważ ta funkcja ma wartość zwracaną, rzeczywisty fragment kodu tutaj jest wyrażeniem, które przyjmuje wartość tego,

38
00:02:34,720 --> 00:02:37,750
‫co jest zwracane z funkcji.

39
00:02:37,750 --> 00:02:44,230
‫I jest to zasadniczo to samo, co pisaki wyjściowe, które widzieliśmy wcześniej na schemacie.

40
00:02:44,260 --> 00:02:50,770
‫Poza tym, że w przeciwieństwie do planów, funkcja może mieć tylko jedną wartość wyjściową.

41
00:02:50,770 --> 00:02:52,360
‫Jest tylko jedna wartość zwrotu.

42
00:02:52,750 --> 00:02:59,590
‫To jest to, czego możemy użyć tutaj, gdzie napisaliśmy nasz pseudokod, który mówi, aby uzyskać aktualną lokalizację.

43
00:02:59,890 --> 00:03:02,410
‫Właśnie tam zamierzamy to zrobić.

44
00:03:02,410 --> 00:03:08,380
‫Ustalimy lokalizację, korzystając z naszej lokalizacji dostępu.

45
00:03:08,380 --> 00:03:11,050
‫Stwórzmy więc tutaj nową zmienną lokalną.

46
00:03:11,470 --> 00:03:14,560
‫Będziemy mieli nową zmienną lokalną o nazwie F typu efekt.

47
00:03:14,560 --> 00:03:21,370
‫Musi to być wektor typu S, ponieważ jest to typ zwracany z get

48
00:03:21,370 --> 00:03:31,900
‫at a location i będziemy nazywać tę bieżącą lokalizację i ustawimy ją jako równą wynikowi wyrażenia, pobierzemy lokalizację aktora, a następnie

49
00:03:32,020 --> 00:03:37,300
‫ustawimy nawiasy pasujących nawiasów, a następnie średnik na końcu wiersza.

50
00:03:37,690 --> 00:03:44,050
‫Więc jeśli trochę przetniemy tę linię, zobaczymy, że ten kawałek, lokalizacja get act i

51
00:03:44,050 --> 00:03:49,780
‫nawiasy to wyrażenie, które daje nam wartość, która jest bieżącą lokalizacją aktora.

52
00:03:50,380 --> 00:03:56,860
‫Następnie wykonujemy przypisanie do bieżącej lokalizacji, która również jest tutaj deklarowana.

53
00:03:57,160 --> 00:04:00,520
‫Więc w tym wierszu, ten cały wiersz nie jest wyrażeniem.

54
00:04:00,520 --> 00:04:02,860
‫Nie ma w tym żadnej wartości, to stwierdzenie.

55
00:04:03,280 --> 00:04:09,670
‫I zazwyczaj można powiedzieć stwierdzenie, ponieważ w C++ kończy się ono średnikiem.

56
00:04:09,820 --> 00:04:16,750
‫Ok, więc zasadniczo pozwoli nam to pozbyć się mojego wektora i wektorów lokalnych,

57
00:04:16,750 --> 00:04:23,590
‫których używaliśmy wcześniej, ponieważ powinniśmy być w stanie zaktualizować tutaj naszą zmienną lokalną,

58
00:04:23,590 --> 00:04:29,200
‫tę bieżącą lokalizację, którą otrzymaliśmy z lokalizacja naszego aktora.

59
00:04:29,620 --> 00:04:34,300
‫Więc to, co zrobimy, to dalej tutaj, otrzymaliśmy komentarz, który mówi, ustaw lokalizację.

60
00:04:34,300 --> 00:04:45,220
‫Więc po tym wierszu komentarza, ustawię lokalizację aktora, używając wyrażenia bieżąca lokalizacja, czyli po prostu używając tej wartości zmiennej, a następnie wstawię

61
00:04:45,430 --> 00:04:50,200
‫średnik na końcu wiersza, aby powiedzieć, że to wszystko

62
00:04:50,200 --> 00:04:51,430
‫jest instrukcją.

63
00:04:51,430 --> 00:04:58,960
‫Chcemy, aby wykonał to działanie ustawione w lokalizacji i zauważyłem, że podczas gdy moje komentarze są wcięte,

64
00:04:58,960 --> 00:05:04,060
‫zdecydowałem się nie wcinać kodu, aby pasował, ponieważ zwykle tego chcemy.

65
00:05:04,600 --> 00:05:08,890
‫Kody mają znajdować się na jednym poziomie wcięcia w ramach funkcji.

66
00:05:09,760 --> 00:05:15,430
‫Teraz mogę usunąć cały kod, który mieliśmy wcześniej, wszystko, co dotyczy wektora lokalnego, mój zestaw wektorów

67
00:05:15,430 --> 00:05:19,420
‫w lokalizacji przy użyciu wektora lokalnego, mogę to wszystko usunąć.

68
00:05:19,780 --> 00:05:23,530
‫Tak więc wszystko, co mamy teraz, to rzeczy wokół naszych komentarzy.

69
00:05:24,100 --> 00:05:27,060
‫A także, zamierzam przejść do pliku nagłówkowego i trochę uporządkować tutaj.

70
00:05:27,070 --> 00:05:28,660
‫Nie potrzebujemy już mojego wektora.

71
00:05:28,660 --> 00:05:31,390
‫Nie potrzebujemy już nieruchomości mojego ex u.

72
00:05:31,390 --> 00:05:34,270
‫Więc te też usunę.

73
00:05:34,510 --> 00:05:39,930
‫Teraz oczywiście ruchoma platforma CP tak naprawdę nie robi zbyt wiele, ponieważ otrzymujemy aktualną lokalizację aktora,

74
00:05:39,940 --> 00:05:44,560
‫a następnie ustawiamy ją ponownie, co w zasadzie nie ma żadnego efektu.

75
00:05:44,680 --> 00:05:52,630
‫Więc chciałbym, abyś spróbował zaktualizować bieżącą lokalizację ruchomej platformy w tej funkcji tiku.

76
00:05:53,110 --> 00:05:56,470
‫Więc używaj członków X lub Y według własnego uznania.

77
00:05:56,470 --> 00:05:57,730
‫Cóż, X pójdzie do przodu.

78
00:05:57,730 --> 00:06:05,170
‫Y przeniesie Cię w prawo, a następnie możesz dodać do niego i przypisać z powrotem do członka, tak jak robiliśmy

79
00:06:05,170 --> 00:06:08,500
‫to wcześniej, aby zaktualizować lokalizację naszych ruchomych platform.

80
00:06:08,950 --> 00:06:15,880
‫Dodaj więc jedną lub dwie, w zależności od tego, jak szybko platforma ma się poruszać, a następnie przenieś platformę

81
00:06:15,880 --> 00:06:20,830
‫do jej lokalizacji początkowej, ponieważ teraz nie mamy tej zmiennej składowej, aby wskazać jej

82
00:06:20,830 --> 00:06:23,770
‫lokalizację początkową, w rzeczywistości używamy bieżącej lokalizacji.

83
00:06:23,980 --> 00:06:28,690
‫Więc gdziekolwiek umieścisz tę platformę, tam zacznie się platforma.

84
00:06:29,290 --> 00:06:35,140
‫A potem chciałbym, żebyś skompilował i przetestował swój kod i sprawdził, czy się porusza, jak można się spodziewać.

85
00:06:35,380 --> 00:06:36,970
‫Wstrzymaj wideo i spróbuj.

86
00:06:40,000 --> 00:06:40,320
‫Dobra.

87
00:06:40,330 --> 00:06:41,020
‫Witamy spowrotem.

88
00:06:41,350 --> 00:06:47,110
‫Więc umieścimy ten wiersz kodu tuż pod komentarzem, który o tym mówi, dodamy wektor

89
00:06:47,200 --> 00:06:48,970
‫do tej lokalizacji.

90
00:06:49,630 --> 00:06:55,000
‫Powodem, dla którego to tutaj umieszczamy, jest kolejność, w jakiej chcemy uzyskać aktualną lokalizację, zaktualizować

91
00:06:55,000 --> 00:06:56,790
‫ją, a następnie ustawić.

92
00:06:56,800 --> 00:06:59,530
‫Nie chcemy, żeby coś się tam działo.

93
00:07:00,100 --> 00:07:04,750
‫Gdybyśmy mieli ją zaktualizować przed utworzeniem zmiennej, cóż, ta zmienna by nie istniała.

94
00:07:04,750 --> 00:07:06,250
‫Pamiętaj, jest to zmienna lokalna.

95
00:07:06,550 --> 00:07:10,870
‫Istnieje tylko wtedy, gdy utworzymy go w tym konkretnym wywołaniu funkcji.

96
00:07:11,260 --> 00:07:16,690
‫A gdybyśmy zrobili to po ponownym ustawieniu w lokalizacji, ta modyfikacja zostałaby po prostu

97
00:07:16,690 --> 00:07:19,960
‫odrzucona, gdy doszliśmy do zamykającego Brice'a w funkcji.

98
00:07:20,440 --> 00:07:29,200
‫Więc ustawimy obecną lokalizację kropki x, użyję równej bieżącej lokalizacji, kropki x plus jeden,

99
00:07:29,410 --> 00:07:33,940
‫a następnie wstawię średnik na końcu linii.

100
00:07:34,270 --> 00:07:40,030
‫I wrócimy do Unreal i naciśniemy przycisk kompilacji.

101
00:07:40,210 --> 00:07:45,580
‫I jak wspomniałem, musimy teraz przenieść tę ruchomą platformę na jej początkową lokalizację.

102
00:07:45,590 --> 00:07:51,430
‫Więc kliknę na postać z trzeciej osoby i skopiuję jej lokalizację, klikając ją prawym przyciskiem myszy, naciskając kopiuj,

103
00:07:51,430 --> 00:07:56,020
‫a następnie przechodząc do naszej ruchomej platformy, klikając prawym przyciskiem myszy jej lokalizację,

104
00:07:56,020 --> 00:07:56,740
‫naciskając wklej.

105
00:07:56,740 --> 00:08:01,270
‫To sprawia, że platforma znajduje się w naszym odtwarzaczu, a to nie jest to, czego chcemy.

106
00:08:01,630 --> 00:08:09,190
‫Więc przesunę go nieco na prawo od odtwarzacza i zobaczę, czy jest na odpowiedniej

107
00:08:09,190 --> 00:08:09,760
‫wysokości.

108
00:08:09,760 --> 00:08:15,370
‫Myślę, że obniżę ją nieco niżej, co jest jedną z korzyści płynących z używania bieżącej lokalizacji, a

109
00:08:15,370 --> 00:08:19,900
‫nie zmiennej lokalizacji, jest to, że faktycznie mogę zobaczyć, gdzie ta platforma będzie na

110
00:08:19,900 --> 00:08:20,350
‫świecie.

111
00:08:20,890 --> 00:08:26,860
‫Więc teraz, jeśli pójdę dalej i wcisnę odtwarzanie, to widać, że platforma ładnie przesuwa ją w

112
00:08:26,860 --> 00:08:27,940
‫kierunku X.

113
00:08:27,970 --> 00:08:31,440
‫Nadal mogę na nią skakać i poruszać się razem z nią.

114
00:08:31,450 --> 00:08:32,260
‫Świetna sprawa.

115
00:08:32,560 --> 00:08:36,310
‫Teraz nauczyliśmy się, jak zwracane wartości działają z funkcji.

116
00:08:36,520 --> 00:08:42,880
‫Naprawdę zaczynamy rozumieć wiele koncepcji z planów w świecie C++.

117
00:08:43,210 --> 00:08:44,650
‫Do zobaczenia na następnym wykładzie.

