﻿1
00:00:04,330 --> 00:00:05,080
‫Hallo en welkom.

2
00:00:05,080 --> 00:00:11,230
‫In deze lezing gaan we ervoor zorgen dat onze triggercomponenten opnieuw worden afgedrukt wanneer deze naar een lege ruimte gaat

3
00:00:11,410 --> 00:00:14,770
‫en wanneer we de waterspuwer erin plaatsen, wordt deze ontgrendeld.

4
00:00:14,950 --> 00:00:17,530
‫En als ik hem er weer uithaal, zit hij weer op slot.

5
00:00:17,980 --> 00:00:23,110
‫En de manier waarop we dit gaan doen is door onze functionaliteit uit te trekken om te ontdekken of

6
00:00:23,110 --> 00:00:26,140
‫we een acceptabele actor hebben in zijn eigen afzonderlijke functie.

7
00:00:26,290 --> 00:00:29,140
‫En ik ga leren over vroege terugkeer binnen vier lussen.

8
00:00:29,380 --> 00:00:30,820
‫Om dat te doen, duiken we erin.

9
00:00:31,950 --> 00:00:36,450
‫Dus dit stuk code dat we hebben en de technische component begint voor mij al als een functie te

10
00:00:36,450 --> 00:00:36,830
‫voelen.

11
00:00:36,840 --> 00:00:43,560
‫In wezen is het een functie die de acceptabele actor te pakken krijgt, als we die hebben, dus we

12
00:00:43,560 --> 00:00:49,470
‫kunnen doorgaan naar onze triggercomponent punt H en onder het privégedeelte een dergelijke functie maken.

13
00:00:49,740 --> 00:00:51,810
‫Wat moet het retourtype zijn?

14
00:00:51,840 --> 00:00:58,920
‫Welnu, ik denk dat het een A-acteuraanwijzer zou moeten zijn, die altijd een nulaanwijzer kan zijn als er geen acceptabele acteur

15
00:00:58,920 --> 00:00:59,490
‫is.

16
00:00:59,850 --> 00:01:05,160
‫Dus we kunnen dit krijgen acceptabele actor lege haakjes noemen.

17
00:01:05,160 --> 00:01:06,420
‫We hoeven het niets te geven.

18
00:01:06,420 --> 00:01:12,180
‫En omdat het onze functie niet verandert, kunnen we het constant maken.

19
00:01:12,540 --> 00:01:17,700
‫Laten we doorgaan en dit in dit heap-bestand implementeren door naar een streepje te gaan.

20
00:01:17,700 --> 00:01:26,760
‫Het geeft het een je activeert de dubbele punt van het onderdeel en vervangt het puntkomma door accolades.

21
00:01:27,630 --> 00:01:35,490
‫En dan is de code die we willen eigenlijk de inhoud van de tick-component, behalve wat we niet willen doen,

22
00:01:35,490 --> 00:01:37,440
‫is dat gewoon loggen.

23
00:01:37,440 --> 00:01:39,360
‫We hebben hier een acteur vrijgespeeld.

24
00:01:39,780 --> 00:01:47,250
‫Wat we willen doen, is dat in het geval dat we deze acteur hebben gevonden, we hem in wezen willen teruggeven.

25
00:01:47,250 --> 00:01:48,810
‫Er zijn dus een aantal manieren waarop we dit kunnen doen.

26
00:01:48,810 --> 00:01:56,310
‫We zouden aan het begin van onze functie kunnen zeggen dat er een actor-pointer is, die de terugkerende actor

27
00:01:56,310 --> 00:02:00,570
‫zal zijn, en standaard stellen we dit in op null-pointer.

28
00:02:00,990 --> 00:02:04,170
‫Er is dus geen acteur die we gaan terugsturen.

29
00:02:04,470 --> 00:02:09,300
‫Maar als we onze for-lus doorlopen en uiteindelijk een acteur vinden die de acceptabele

30
00:02:09,300 --> 00:02:16,740
‫tag heeft, dan kunnen we zeggen: Hé, de terugkerende acteur zou eigenlijk naar de actor-aanwijzer moeten wijzen die we hier in de array

31
00:02:17,010 --> 00:02:17,700
‫hebben gevonden.

32
00:02:18,030 --> 00:02:22,410
‫En dan aan het einde van de for-lus, nadat de volledige lus is afgelopen, hebben we alle acteurs doorgenomen.

33
00:02:22,680 --> 00:02:28,620
‫We kunnen doorgaan en de return actor-variabele retourneren, want dat is het juiste type.

34
00:02:29,430 --> 00:02:30,150
‫Dat is goed.

35
00:02:30,420 --> 00:02:35,340
‫Maar het vereist dat we een variabele maken en het vereist ook dat we de hele volledige lus doorlopen,

36
00:02:35,340 --> 00:02:37,860
‫zelfs als we al een acceptabele actor hebben gevonden.

37
00:02:38,550 --> 00:02:42,150
‫Dus een betere manier om dit te doen, is door een vroege terugkeer te gebruiken.

38
00:02:42,150 --> 00:02:48,180
‫En we hebben dit soort dingen eerder gezien in Ik pak een CP waar we dit hebben gedaan.

39
00:02:48,180 --> 00:02:54,180
‫Als de physics-handles gelijk zijn aan een kleine aanwijzer, keren we terug en hoeft de rest van het onderdeel niet

40
00:02:54,180 --> 00:02:55,080
‫te worden uitgevoerd.

41
00:02:55,350 --> 00:02:59,910
‫We kunnen dezelfde soort efficiëntie ook gebruiken voor sprongen.

42
00:03:00,300 --> 00:03:06,870
‫Dus wat ik ga doen is als we de acceptabele acteur vinden, we gaan gewoon een terugkerende acteur doen.

43
00:03:06,900 --> 00:03:11,750
‫We geven letterlijk de aanwijzer terug die we zojuist in deze for-lus hebben gevonden en de rest van de for-lus

44
00:03:11,790 --> 00:03:13,170
‫hoeft niet te worden uitgevoerd.

45
00:03:13,890 --> 00:03:20,280
‫Als we echter doorgaan naar het einde van de for-lus en we hebben niets gevonden, we hebben niets geretourneerd,

46
00:03:20,280 --> 00:03:23,790
‫de return zou de for-lus stoppen en de functie verlaten.

47
00:03:24,060 --> 00:03:30,150
‫Maar als we aan het einde komen, moeten we standaard iets retourneren en dit is waar we gewoon de

48
00:03:30,480 --> 00:03:31,680
‫nulaanwijzer kunnen retourneren.

49
00:03:31,980 --> 00:03:33,390
‫Dit is dus de standaardwaarde.

50
00:03:33,390 --> 00:03:35,430
‫Het betekent dat we de hele for-lus hebben doorlopen.

51
00:03:35,730 --> 00:03:37,980
‫We hebben gezien dat er geen acceptabele acteur is.

52
00:03:37,990 --> 00:03:40,170
‫Geen van de acteurs overlapt ons.

53
00:03:41,330 --> 00:03:42,770
‫Met het juiste label.

54
00:03:42,830 --> 00:03:44,960
‫Dus we retourneren null pointer.

55
00:03:45,380 --> 00:03:51,050
‫Dus nu betekent dat dat ik deze overbodige return actor-variabele heb die ik kan gaan en verwijderen.

56
00:03:51,380 --> 00:03:53,450
‫En dit leest echt heel netjes.

57
00:03:53,450 --> 00:03:57,830
‫We gaan door, we krijgen de overlappende acteurs, we doen er een volledige lus over.

58
00:03:58,130 --> 00:04:02,600
‫Als elke acteur die we testen, heeft hij dan de tag 'acceptabel'?

59
00:04:02,870 --> 00:04:04,520
‫Als dat zo is, stoppen we daar.

60
00:04:04,550 --> 00:04:05,480
‫Die geven we terug.

61
00:04:05,780 --> 00:04:08,180
‫Als geen van hen het heeft, retourneren we een null-pointer.

62
00:04:08,390 --> 00:04:11,750
‫Dus laten we je uitdagen om in te loggen als we de acteur vinden.

63
00:04:11,750 --> 00:04:14,300
‫Roep dus onze functie aan in uw vinkcomponent.

64
00:04:14,630 --> 00:04:20,180
‫Controleer of de aanwijzer nul is en log in beide gevallen in, zowel of we een actor hebben als dat we

65
00:04:20,180 --> 00:04:21,860
‫geen F- en een else-statement gebruiken.

66
00:04:21,860 --> 00:04:23,300
‫Pauzeer de video en probeer het.

67
00:04:26,430 --> 00:04:26,780
‫Oké.

68
00:04:26,790 --> 00:04:27,600
‫Welkom terug.

69
00:04:27,990 --> 00:04:30,090
‫Laten we dus teruggaan naar onze technische componenten.

70
00:04:30,090 --> 00:04:36,540
‫Wat we gaan doen, is een variabele maken, een actor-aanwijzer, die de actor zal zijn, wat

71
00:04:36,990 --> 00:04:41,310
‫gelijk is aan een acceptabele actor die we gaan doen.

72
00:04:41,310 --> 00:04:50,580
‫Als de acteur niet gelijk is aan de null-aanwijzer, dan gaan we in de hoofdtekst hiervan een dialoog ontgrendelen en dan in de

73
00:04:50,580 --> 00:04:57,750
‫andere log je deze keer opnieuw, want dat is het gedrag dat ik wil dat onze trigger-component en

74
00:04:57,750 --> 00:05:03,120
‫samen verplaatsen is als je de waterspuwer erin hebt, wordt hij ontgrendeld.

75
00:05:03,120 --> 00:05:09,780
‫Het gaat de verhuizer gebruiken en het wordt opnieuw vergrendeld als we het selectievakje bij verplaatsen in feite uitschakelen

76
00:05:09,780 --> 00:05:13,680
‫als we de waterspuwer verwijderen, dus laten we dat compileren.

77
00:05:13,890 --> 00:05:15,750
‫Dus laten we doorgaan en op play drukken.

78
00:05:15,960 --> 00:05:19,380
‫Je kunt zien dat hij weer op slot zit omdat we daar geen waterspuwer hebben.

79
00:05:19,590 --> 00:05:22,530
‫Pak de gargoyle op en breng hem naar je toe en daar ga je.

80
00:05:22,530 --> 00:05:28,350
‫Het is nu aan het ontgrendelen, haal het eruit en het is weer aan het ontgrendelen en ziet er perfect uit.

81
00:05:28,350 --> 00:05:29,970
‫Als ik naar binnen stap, gebeurt er niets.

82
00:05:29,970 --> 00:05:30,870
‫Het is gewoon weer op slot.

83
00:05:31,350 --> 00:05:37,860
‫We hebben dus met succes kunnen achterhalen of we iets in onze triggercomponent hebben of

84
00:05:37,980 --> 00:05:38,610
‫niet.

85
00:05:38,940 --> 00:05:40,650
‫Nu moeten we er gewoon iets van maken.

86
00:05:40,650 --> 00:05:42,660
‫En dat zal het onderwerp zijn van de volgende lezing.

87
00:05:42,690 --> 00:05:43,290
‫Ik zal dat zien.

