﻿1
00:00:04,400 --> 00:00:05,180
‫Hallo en welkom.

2
00:00:05,180 --> 00:00:12,050
‫In deze lezing gaan we onze code aanpassen om onze grijpfunctie kleiner en leesbaarder te

3
00:00:12,050 --> 00:00:12,770
‫maken.

4
00:00:12,770 --> 00:00:15,170
‫En we gaan onze parameters weer gebruiken.

5
00:00:15,290 --> 00:00:18,770
‫Deze keer gaan we een functie maken die deze als parameter neemt.

6
00:00:18,770 --> 00:00:21,110
‫Laten we erin duiken en kijken hoe we dit kunnen doen.

7
00:00:22,160 --> 00:00:29,030
‫Het is dus over het algemeen de beste gewoonte om functies op één scherm te laten passen.

8
00:00:29,060 --> 00:00:31,190
‫Nu, in mijn geval, is mijn scherm erg groot.

9
00:00:31,460 --> 00:00:32,720
‫Maar we leren nog steeds.

10
00:00:32,720 --> 00:00:37,250
‫Het is dus eigenlijk logisch om nog kleinere functies te hebben om dingen begrijpelijk te maken.

11
00:00:38,060 --> 00:00:46,040
‫En ik denk dat deze grijpfunctie te lang is geworden, dus ik denk dat we het kunnen opsplitsen in redelijk functionele eenheden.

12
00:00:46,040 --> 00:00:52,160
‫De eerste zal het bit zijn dat de sweep doet en alle berekening van de start-

13
00:00:52,160 --> 00:00:57,710
‫en eindvectoren doet en het hitresultaat uitvoert en of we hebben geraakt of niet.

14
00:00:57,710 --> 00:01:03,110
‫De Boolean die zegt of we hebben geslagen en het tweede bit zit in de if-statement

15
00:01:03,110 --> 00:01:08,900
‫die we waarschijnlijk kunnen verlaten als de taak van grijpen, want dat heeft eigenlijk met grijpen te maken, toch?

16
00:01:08,900 --> 00:01:10,730
‫We moeten het stijve lichaam wakker maken.

17
00:01:10,730 --> 00:01:16,190
‫We moeten een component pakken die logisch is om een methode te zijn die wordt aangeroepen in een functie met de naam grab.

18
00:01:16,550 --> 00:01:20,150
‫Maar deze andere dingen zijn een beetje meer tangentieel.

19
00:01:20,150 --> 00:01:23,450
‫Het is meer een hulpprogramma dat we moeten gebruiken.

20
00:01:23,780 --> 00:01:28,550
‫Dus ik daag je uit om dat nut te creëren, een bal binnen handbereik te krijgen.

21
00:01:28,550 --> 00:01:33,110
‫Zo zou het volgens mij moeten heten, het ding dat beschrijft wat die brok code doet.

22
00:01:33,380 --> 00:01:40,220
‫Dus extraheer al die sweep-code in een nieuwe privéfunctie, hoe te denken over wat de parameters en de retourwaarde ervan

23
00:01:40,220 --> 00:01:41,540
‫zouden moeten zijn.

24
00:01:41,540 --> 00:01:43,490
‫Onthoud dat je twee uitgangen hebt.

25
00:01:43,760 --> 00:01:46,460
‫Dus we hebben een hit en hit resultaat.

26
00:01:46,850 --> 00:01:51,650
‫U moet dus nadenken over het gebruik van een out-parameter om dit te laten werken.

27
00:01:52,160 --> 00:01:58,040
‫Als je een kleine hint wilt, ga ik je zo laten zien wat ik in het header-bestand ga

28
00:01:58,250 --> 00:01:58,940
‫zetten.

29
00:01:58,940 --> 00:02:01,280
‫Als je dat niet doet, kun je de video nu pauzeren.

30
00:02:01,850 --> 00:02:04,040
‫Anders geef ik je de hint.

31
00:02:04,790 --> 00:02:10,820
‫Dus we gaan erheen om een punt h te pakken en daaronder waar we

32
00:02:11,210 --> 00:02:18,330
‫fysiek handvat moeten krijgen, zullen we een Booleaans retourtype hebben om ons te vertellen of er iets is,

33
00:02:18,360 --> 00:02:27,020
‫we kunnen iets pakken, laten we een pak pakken bal binnen bereik is, moeten we het een parameter geven die een out-parameter

34
00:02:27,020 --> 00:02:27,590
‫wordt.

35
00:02:27,620 --> 00:02:35,360
‫Het wordt dus een niet-constante verwijzing naar het F-trefferresultaat per referentie.

36
00:02:36,530 --> 00:02:41,240
‫Ampersand en dan noemen we dat het resultaat van de alt-hit zo.

37
00:02:41,420 --> 00:02:49,130
‫En dan denk ik dat dit niets in onze functie gaat veranderen, dus we kunnen het ook constant maken.

38
00:02:49,280 --> 00:02:51,980
‫Het zijn een beetje bonuspunten als je daar al aan had gedacht.

39
00:02:52,580 --> 00:02:57,620
‫Dus ga je gang, pauzeer, video en probeer die functie in het C++-bestand in te vullen.

40
00:03:01,030 --> 00:03:01,390
‫Oké.

41
00:03:01,390 --> 00:03:02,120
‫Welkom terug.

42
00:03:02,140 --> 00:03:04,720
‫Dus ik ga het kopiëren naar C++.

43
00:03:05,050 --> 00:03:10,870
‫Ik ga het onder onze physics-handvatcomponent plaatsen om overeen te komen met de volgorde die we hebben in

44
00:03:10,870 --> 00:03:11,560
‫het headerbestand.

45
00:03:12,040 --> 00:03:16,630
‫Ik ga de U-grabber vooraan toevoegen.

46
00:03:17,050 --> 00:03:18,460
‫Ik ga het correct inspringen.

47
00:03:18,490 --> 00:03:25,030
‫Ik ga in plaats van de puntkomma de accolades toevoegen, en dan ga ik de code verplaatsen die we

48
00:03:25,030 --> 00:03:26,800
‫in de greep hebben.

49
00:03:26,860 --> 00:03:31,270
‫Dus vanaf regel 53 voor mij, tot 65.

50
00:03:31,690 --> 00:03:33,250
‫Ik ga dat allemaal schrappen.

51
00:03:34,150 --> 00:03:35,920
‫Ik zal het zo vervangen door iets.

52
00:03:36,340 --> 00:03:40,540
‫Ik ga het erin plakken om een bal binnen handbereik te krijgen.

53
00:03:41,140 --> 00:03:44,660
‫En we hebben dit hitresultaat dat we hebben gemaakt.

54
00:03:44,680 --> 00:03:53,290
‫Wat we kunnen doen, is dat we dat kunnen vaststellen, resultaten die gelijk zijn aan ons hitresultaat dat we hier hebben.

55
00:03:53,680 --> 00:04:00,970
‫We willen dat misschien alleen doen als we er twee hebben geraakt, dus we kunnen dat als de instructie zo

56
00:04:00,970 --> 00:04:08,080
‫heeft geraakt en deze opdracht inpakken, de out-hits naar de hitresultaten in de if-instructie en dan kunnen we doorgaan

57
00:04:08,080 --> 00:04:15,700
‫en bij de einde van de functie, gewoon terug is geraakt, dus nu is er een optimalisatie of een verbetering die

58
00:04:15,700 --> 00:04:22,690
‫hier kan worden aangebracht omdat we door middel van verwijzing naar het sweep-kanaal gaan en naar de grabball binnen

59
00:04:22,690 --> 00:04:23,200
‫handbereik.

60
00:04:23,200 --> 00:04:28,930
‫Het is niet nodig om hier een nieuw trefferresultaat aan te maken en dit vervolgens naar het trefferresultaat te kopiëren.

61
00:04:28,930 --> 00:04:30,070
‫Dat is gewoon geheugenverlies.

62
00:04:30,790 --> 00:04:36,190
‫Wat we kunnen doen, is dat we het hitresultaat dat we binnen creëren, kunnen verwijderen, de bal binnen handbereik krijgen.

63
00:04:36,640 --> 00:04:44,050
‫En in plaats daarvan kunnen we gewoon de referentie gebruiken die we hebben doorgegeven om direct door te gaan naar de sweep

64
00:04:44,050 --> 00:04:44,920
‫per kanaal.

65
00:04:44,930 --> 00:04:50,380
‫Dus het geeft deze verwijzing eigenlijk door aan functies naar beneden in de sweep per kanaal waar

66
00:04:50,380 --> 00:04:51,460
‫het wordt ingevuld.

67
00:04:51,820 --> 00:04:57,160
‫Dat elimineert de noodzaak voor de if-instructie, waardoor deze functie een beetje sneller en gemakkelijker te lezen

68
00:04:57,160 --> 00:04:57,700
‫is.

69
00:04:57,970 --> 00:05:01,510
‫En in feite denk ik niet dat we een variabele nodig hebben om hits op te slaan.

70
00:05:01,510 --> 00:05:03,720
‫We kunnen gewoon doorgaan en terugkeren.

71
00:05:03,730 --> 00:05:09,670
‫Het zal veel schoner zijn om de Get World Suite-kanaalresultaten te retourneren.

72
00:05:09,670 --> 00:05:16,030
‫Dus we geven de resultaten daarvan gewoon door via een back-up om binnen handbereik te komen of wie het

73
00:05:16,030 --> 00:05:16,840
‫ook roept.

74
00:05:17,170 --> 00:05:21,900
‫Dus als we het hebben over wie het ook roept, we moeten nu in onze greep gaan.

75
00:05:21,910 --> 00:05:24,610
‫We moeten ons hitresultaat ergens creëren.

76
00:05:24,610 --> 00:05:25,630
‫We moeten het hier creëren.

77
00:05:25,630 --> 00:05:27,910
‫Dus hit resultaat, dit is degene die we gaan vullen.

78
00:05:28,420 --> 00:05:34,930
‫We gaan dan een briljante variabele maken die hit gaat worden en die gelijk aan

79
00:05:34,930 --> 00:05:42,100
‫je krijgt, pak een bal binnen bereik en we gaan het hitresultaat doorgeven door verwijzing dat we

80
00:05:42,100 --> 00:05:42,970
‫willen vullen.

81
00:05:43,390 --> 00:05:49,000
‫En als we hebben geraakt, gaan we verder en voeren we de grijpcode uit.

82
00:05:49,360 --> 00:05:50,260
‫Fantastisch spul.

83
00:05:50,260 --> 00:05:56,560
‫We hebben iets erin verplaatst naar een functie om deze grijpfunctie op één scherm te laten passen.

84
00:05:56,560 --> 00:06:04,030
‫En we hebben opnieuw gebruik gemaakt van onze parameters, deze keer hebben we een functie voor onszelf gecreëerd die ze

85
00:06:04,030 --> 00:06:04,960
‫serieus gebruikt.

86
00:06:05,170 --> 00:06:07,060
‫Ik zie je in de volgende video.

