﻿1
00:00:04,510 --> 00:00:05,290
‫Hallo en welkom.

2
00:00:05,290 --> 00:00:10,810
‫In deze lezing gaan we onze pooltrigger refactoren, zodat het klaar is voor ons om meer code toe te

3
00:00:10,810 --> 00:00:11,350
‫voegen.

4
00:00:11,350 --> 00:00:15,190
‫Op dit moment liep het echt uit de hand wie het gingen refactoreren naar

5
00:00:15,190 --> 00:00:18,700
‫een kleine functie als deze die echt veel eenvoudiger te lezen is.

6
00:00:18,700 --> 00:00:21,070
‫Laten we erin duiken en kijken hoe we deze refactor kunnen doen.

7
00:00:22,220 --> 00:00:22,430
‫Oké.

8
00:00:22,430 --> 00:00:27,800
‫Dus we willen wat geluid in ons spel brengen en de plaats waar we dit gaan doen is in het geweer

9
00:00:27,800 --> 00:00:28,610
‫als we schieten.

10
00:00:28,610 --> 00:00:30,050
‫Dat is de eerste aanloophaven.

11
00:00:30,050 --> 00:00:33,290
‫Ik denk dat een mooi soort schotgeluid, een impactgeluid geweldig zou zijn.

12
00:00:33,920 --> 00:00:39,230
‫Het enige probleem is dat toen ik terugkwam bij onze pull-trigger-functie, ik merkte dat deze bizar groot is

13
00:00:39,230 --> 00:00:39,590
‫geworden.

14
00:00:39,590 --> 00:00:41,120
‫Hij past niet op een van mijn schermen.

15
00:00:41,120 --> 00:00:45,350
‫Het is ook een beetje moeilijk te lezen en te begrijpen waar we deze functionaliteit zouden plaatsen.

16
00:00:45,740 --> 00:00:50,840
‫Dus hoewel we de moeite nemen om echt te begrijpen wat de functionaliteit hier is, is het misschien de moeite waard om

17
00:00:50,990 --> 00:00:56,780
‫een snelle refactor uit te voeren of een deel van deze dingen in andere methoden te gebruiken, zodat het niet zo moeilijk te lezen

18
00:00:56,780 --> 00:00:57,260
‫is.

19
00:00:58,070 --> 00:01:03,140
‫Als je nu naar deze code gaat kijken en probeert uit te vinden wat de basisdingen zijn

20
00:01:03,140 --> 00:01:08,510
‫die het doet, dan zul je zien dat een groot deel hiervan eigenlijk alleen voor onze lijn is opgezet.

21
00:01:08,510 --> 00:01:12,020
‫Traceer dit hele stuk van regel 28 naar 43.

22
00:01:12,560 --> 00:01:13,880
‫En wat zijn we aan het doen?

23
00:01:13,880 --> 00:01:18,950
‫Wel, we krijgen de pion van de eigenaar, dan controleren we of we de controller van de eigenaar krijgen,

24
00:01:18,950 --> 00:01:23,810
‫dan krijgen we de viewport daarvan, dan krijgen we de eindlocatie op basis van het maximale bereik en

25
00:01:23,810 --> 00:01:26,570
‫dan passeren we in sommige hitparameters om dingen te negeren.

26
00:01:26,870 --> 00:01:33,550
‫Dit alles is alleen ingesteld voor onze lijntracering, dus waarom halen we dat hier niet uit in zijn eigen functie?

27
00:01:34,220 --> 00:01:37,550
‫Ik ga helemaal onderaan een nieuwe privé-functie maken.

28
00:01:37,550 --> 00:01:45,680
‫Na onze variabelen zal het van bool return zijn, omdat we deze call hier die succes retourneert

29
00:01:45,680 --> 00:01:52,220
‫in wezen willen vervangen door een die ons ook het hitresultaat geeft.

30
00:01:52,790 --> 00:01:59,960
‫Dus we gaan dit doen als iets wat ik een gun trace-functie ga noemen en het zal hier

31
00:01:59,960 --> 00:02:01,490
‫enkele parameters hebben.

32
00:02:01,520 --> 00:02:03,860
‫Namelijk, een van hen wordt het hitresultaat.

33
00:02:03,860 --> 00:02:07,370
‫Dus druk op resultaat, ampersand om er een referentie van te maken.

34
00:02:07,370 --> 00:02:10,070
‫En omdat het geen constante referentie is, weten we dat het een out-parameter is.

35
00:02:10,190 --> 00:02:11,150
‫Noem dit de hit.

36
00:02:11,150 --> 00:02:14,360
‫En misschien is er nog een die we hier nodig hebben.

37
00:02:14,660 --> 00:02:21,920
‫Ik kan namelijk zien dat de rotatie uit dit stuk code komt en in feite ontkennen we

38
00:02:21,920 --> 00:02:23,270
‫die rotatie.

39
00:02:23,270 --> 00:02:26,600
‫Dus waar we echt in geïnteresseerd zijn, is de opnamerichting.

40
00:02:26,600 --> 00:02:28,550
‫Dus misschien is dat waar we voor moeten gaan.

41
00:02:28,550 --> 00:02:31,850
‫Dus ik ga een F vector out-parameter maken.

42
00:02:32,690 --> 00:02:37,400
‫Dus vector ampersand en het wordt deze opnamerichting.

43
00:02:38,300 --> 00:02:41,750
‫Dit zijn de twee uitgangen die zullen komen bij gun trace.

44
00:02:42,290 --> 00:02:45,350
‫Laten we nu doorgaan en de implementatie hier maken.

45
00:02:46,370 --> 00:02:53,210
‫En wat we willen doen, is in wezen gewoon al deze code daarin kopiëren.

46
00:02:54,620 --> 00:02:55,460
‫Zien hoe het gaat.

47
00:02:56,330 --> 00:03:00,060
‫En we willen deze opname ook controleren.

48
00:03:00,080 --> 00:03:00,710
‫Richting.

49
00:03:01,520 --> 00:03:05,810
‫Haal dat eruit en plak het er vlak voor het einde in.

50
00:03:05,810 --> 00:03:11,660
‫Of misschien hoort u gewoon nadat we onze spelerviewport hebben, we kunnen instellen dat hun opnamerichting gelijk moet zijn

51
00:03:11,660 --> 00:03:13,100
‫aan de negatieve rotatie.

52
00:03:13,610 --> 00:03:19,160
‫Maar het is belangrijk om hier op te merken dat we eigenlijk geen lokale variabele willen instellen.

53
00:03:19,160 --> 00:03:22,280
‫Dus als je het type hier plaatst, wordt een lokale opnamerichting ingesteld.

54
00:03:22,610 --> 00:03:27,710
‫We willen dat verwijderen zodat het de opnamerichting in de AMP-parameters instelt, wat in feite betekent dat

55
00:03:27,710 --> 00:03:32,340
‫het de opnamerichting instelt die we gaan doorgeven in de functie die het aanroept.

56
00:03:33,140 --> 00:03:34,700
‫Hetzelfde geldt voor de klap.

57
00:03:34,700 --> 00:03:42,200
‫We moeten deze lokale treffer verwijderen, zodat de treffer die per kanaal wordt doorgegeven aan de lijntracering, de treffer is die

58
00:03:42,200 --> 00:03:44,030
‫is doorgegeven aan de wapentracering.

59
00:03:45,260 --> 00:03:50,750
‫En dan is er tenslotte nog iets anders te doen wat nu niet nodig is en ook dit is

60
00:03:50,750 --> 00:03:51,230
‫succes.

61
00:03:51,230 --> 00:03:56,180
‫Welnu, we hoeven alleen maar terug te keren naar het resultaat van de lijntracering per kanaal.

62
00:03:56,180 --> 00:03:59,600
‫Dat zal zijn of ons wapenspoor is geslaagd.

63
00:03:59,870 --> 00:04:02,420
‫We zijn er dus in geslaagd om deze inspringing een beetje blijvend te maken.

64
00:04:02,420 --> 00:04:06,620
‫We kunnen het nu allemaal op één scherm passen, en het is een beetje gemakkelijker te begrijpen dat, ja,

65
00:04:06,620 --> 00:04:09,140
‫dit alles te maken heeft met het verkrijgen van een wapenspoor.

66
00:04:09,800 --> 00:04:14,930
‫We kunnen naar onze CP gaan en we kunnen nu ons basissucces hier neerzetten.

67
00:04:14,930 --> 00:04:23,900
‫Dus Poule B-succes, we moeten instellen als het wapenspoor en we moeten hier enkele parameters doorgeven.

68
00:04:23,900 --> 00:04:26,720
‫Dus we moeten die nog ergens declareren als het resultaat een hit is.

69
00:04:28,190 --> 00:04:29,180
‫Het wordt er een van.

70
00:04:29,440 --> 00:04:30,380
‫Het gaat gewoon raken.

71
00:04:30,890 --> 00:04:36,140
‫En de andere zou een F-vector zijn die de opnamerichting wordt genoemd.

72
00:04:37,490 --> 00:04:39,180
‫En die worden doorgegeven.

73
00:04:39,200 --> 00:04:42,170
‫Dus we gaan eerst de treffer hebben, dan de schotrichting.

74
00:04:44,090 --> 00:04:46,430
‫En dan puntkomma aan het einde daar.

75
00:04:46,880 --> 00:04:49,370
‫Dus dat gaat het net een beetje makkelijker maken.

76
00:04:49,640 --> 00:04:55,940
‫Ik zeg echter niet dat we ook de eigenaar-controller nodig hebben en ik wil niet dat het

77
00:04:55,940 --> 00:04:59,680
‫wapenspoor verantwoordelijk is voor de eigenaar-controller of de eigenaar-controle vergeet.

78
00:04:59,690 --> 00:05:03,230
‫Dat klinkt niet alsof het de verantwoordelijkheid is van een wapenspoor om dat te doen.

79
00:05:03,560 --> 00:05:05,530
‫Het klinkt oké om een hit te krijgen.

80
00:05:05,540 --> 00:05:10,480
‫Het klinkt goed omdat het een schotrichting is, maar ik ga de grens trekken bij het verkrijgen van de eigenaar-controller.

81
00:05:10,490 --> 00:05:17,630
‫Dus daarvoor ga ik het erin stoppen, al deze code in een andere functie stoppen die ze allebei

82
00:05:17,630 --> 00:05:18,560
‫kunnen aanroepen.

83
00:05:19,130 --> 00:05:23,720
‫Dus dat wordt een functie die een controller retourneert.

84
00:05:24,970 --> 00:05:25,540
‫Ster.

85
00:05:26,590 --> 00:05:30,610
‫En we gaan het de jet owner controller noemen.

86
00:05:30,820 --> 00:05:32,080
‫En we kunnen dat a.

87
00:05:32,770 --> 00:05:38,710
‫Zoals we weten, is het niet bedoeld om een van de variabelen in onze wapenklasse te veranderen.

88
00:05:39,130 --> 00:05:40,740
‫Laten we die implementatie maken.

89
00:05:40,750 --> 00:05:47,380
‫Breng gewoon de implementatie van gun trace binnen, repareer eventuele inkepingen indien nodig.

90
00:05:47,380 --> 00:05:52,030
‫En we gaan door en geven gewoon de controle terug aan de eigenaar.

91
00:05:52,040 --> 00:05:53,860
‫U hoeft hier dus geen nagelcontrole te doen.

92
00:05:54,310 --> 00:05:57,700
‫Die nagelcontrole moeten we doen in de functie die het gebruikt.

93
00:05:58,300 --> 00:06:02,920
‫Dus we brengen dat naar voren dat we hier ook geen variabele hoeven in te stellen.

94
00:06:02,920 --> 00:06:04,630
‫We kunnen gewoon doorgaan en terugkeren.

95
00:06:06,620 --> 00:06:08,600
‫Het zal dus redelijk overzichtelijk zijn.

96
00:06:08,600 --> 00:06:10,820
‫Ik heb een controller, maar niet helemaal.

97
00:06:11,300 --> 00:06:14,820
‫En dan gaan we de variabele in gun trace instellen.

98
00:06:14,840 --> 00:06:19,310
‫Dus ik heb een controller en krijg zo een eigen controller.

99
00:06:20,440 --> 00:06:26,890
‫Wat we dan doen een null return to null early return in gun trace, wat trouwens een boolean

100
00:06:26,890 --> 00:06:30,190
‫moet retourneren omdat gun trace een boolean retourneert.

101
00:06:30,820 --> 00:06:36,280
‫Dus we kunnen doorgaan en hier false retourneren, want als we geen eigen controller kunnen krijgen, kunnen we geen wapentracering

102
00:06:36,280 --> 00:06:38,290
‫uitvoeren, daarom kunnen we onmogelijk iets raken.

103
00:06:39,280 --> 00:06:42,640
‫En dan hebben we die eigenaar-controller ook nog eens nodig verderop.

104
00:06:43,870 --> 00:06:47,590
‫Waar we een hit-acteur hebben, doen we dit om schade op te nemen.

105
00:06:48,310 --> 00:06:54,250
‫En wat we hier eigenlijk willen doen, is de controle van de eigenaar hier binnenin onze hit-acteur krijgen.

106
00:06:54,250 --> 00:06:56,500
‫Dus als we een acteur raken, krijgen we de eigenaar-controller weer.

107
00:06:56,890 --> 00:07:00,220
‫Nu, ik weet dat er een paar wapenzoekers zijn.

108
00:07:00,220 --> 00:07:03,160
‫Stap op een controller en dan doen we het weer als we een acteur raken.

109
00:07:03,640 --> 00:07:06,250
‫Maar dat gebeurt alleen elke keer dat we een acteur raken.

110
00:07:06,280 --> 00:07:12,610
‫Dus ik vind het niet erg om dat twee keer opnieuw te berekenen, omdat het de code net dat beetje leesbaarder

111
00:07:12,610 --> 00:07:16,940
‫maakt zonder variabelen en status op te slaan die niet meer synchroon lopen.

112
00:07:16,960 --> 00:07:17,850
‫Daar ga je dan.

113
00:07:17,860 --> 00:07:24,160
‫We hebben nu de eigenaar-controller die we nodig hebben om schade op te lopen en de Apple-trigger ziet er veel beter uit.

114
00:07:24,250 --> 00:07:25,210
‫Dat was het dan voor deze lezing.

115
00:07:25,210 --> 00:07:25,750
‫Een snelle.

116
00:07:25,750 --> 00:07:30,910
‫Gewoon onze pull-trigger herschikken, zodat we een goede basis hebben om vanuit de volgende lezing te werken.

117
00:07:31,060 --> 00:07:31,660
‫En dat zal ik zien.

118
00:07:32,770 --> 00:07:37,030
‫Oh, en het lijkt erop dat ik hier een beetje een booboo heb gemaakt en ze op een controller stappen.

119
00:07:37,420 --> 00:07:42,580
‫Als je compiler probeert, zal het niets doen omdat deze geretourneerde waarde niet echt een aanwijzer

120
00:07:42,580 --> 00:07:43,180
‫retourneert.

121
00:07:43,210 --> 00:07:47,590
‫Dus we willen in dit geval meteen een null-pointer retourneren.

122
00:07:47,590 --> 00:07:50,350
‫In principe kunnen we geen pull krijgen en dan kunnen we geen controller krijgen.

123
00:07:50,350 --> 00:07:51,820
‫Dus we retourneren null pointer.

