﻿1
00:00:04,390 --> 00:00:05,350
‫Hallo en welkom.

2
00:00:05,350 --> 00:00:11,560
‫In deze lezing gaan we lidfuncties introduceren en een veilige en normale functie

3
00:00:11,560 --> 00:00:17,590
‫krijgen waarmee we de richting van een bepaalde vector kunnen bepalen.

4
00:00:17,620 --> 00:00:19,630
‫Laten we erin duiken en kijken hoe dit werkt.

5
00:00:20,750 --> 00:00:26,450
‫Dus onze eenvoudige methode om het platform in de tegenovergestelde richting terug te sturen, werkt met de snelheden

6
00:00:26,450 --> 00:00:28,070
‫waarmee we het hebben getest.

7
00:00:28,310 --> 00:00:33,890
‫Maar wat gebeurt er als ik zeg: Hé, laten we dit platform tien keer sneller laten gaan?

8
00:00:34,070 --> 00:00:36,410
‫Laten we doorgaan en spelen en zien wat er gebeurt.

9
00:00:36,620 --> 00:00:42,380
‫Welnu, plotseling springen die platforms behoorlijk naar voren en zweeft het niet rond dezelfde locatie

10
00:00:42,380 --> 00:00:43,490
‫als voorheen.

11
00:00:43,850 --> 00:00:53,240
‫En de reden hiervoor is dat de huidige locatie, wanneer we deze instellen als de startlocatie, niet per

12
00:00:53,240 --> 00:00:56,870
‫se precies de verplaatste afstand is.

13
00:00:56,930 --> 00:01:01,430
‫We hadden kunnen overschrijden en dat is hier vastgelegd in het if-statement.

14
00:01:01,430 --> 00:01:06,830
‫We zeggen dat de verplaatste afstand groter is dan de verplaatsingsafstand, wat betekent dat we voorbijgeschoten zullen

15
00:01:06,830 --> 00:01:07,220
‫zijn.

16
00:01:07,220 --> 00:01:11,420
‫We moeten een overschrijding hebben gedaan om dit if-statement te activeren.

17
00:01:11,780 --> 00:01:13,270
‫Maar de vraag is met hoeveel?

18
00:01:13,280 --> 00:01:17,780
‫En dat zal erg afhangen van hoe groot de Delta-tijd is.

19
00:01:17,780 --> 00:01:23,660
‫We kunnen met vrij grote hoeveelheden doorschieten, vooral als de platformsnelheid groot is, wat betekent dat onze

20
00:01:23,660 --> 00:01:26,930
‫startlocatie in de loop van de tijd kan afdrijven.

21
00:01:26,930 --> 00:01:28,500
‫Het blijft misschien niet constant.

22
00:01:28,520 --> 00:01:35,540
‫Dus de betere manier om dit te doen zou zijn om te berekenen hoe ver we van de oorspronkelijke startlocatie moeten gaan

23
00:01:35,540 --> 00:01:39,590
‫om bij de nieuwe te komen met behulp van de exacte verplaatsingsafstand.

24
00:01:39,860 --> 00:01:43,010
‫Dus laten we proberen deze heen en weer berekening te visualiseren.

25
00:01:43,010 --> 00:01:46,160
‫We zeggen dat we hier een platform hebben op de startlocatie.

26
00:01:46,640 --> 00:01:53,060
‫We zeggen dat het een snelheid heeft die we kunnen weergeven met een pijl die een richting en een grootte heeft, en het

27
00:01:53,060 --> 00:01:57,920
‫heeft ook een afstand die we willen dat het beweegt, wat wordt weergegeven door deze accolade hier.

28
00:01:58,760 --> 00:02:05,210
‫Wat we nu zeggen, is dat we het exacte punt willen uitvinden waar het platform aan

29
00:02:05,210 --> 00:02:09,740
‫het einde zal zijn, niet voorbijgeschoten, maar precies de eindlocatie.

30
00:02:10,040 --> 00:02:14,900
‫De manier waarop we dit kunnen doen is door de richting van die snelheidspijl te nemen.

31
00:02:14,960 --> 00:02:21,320
‫Dus in vectortaal wordt dit de normaal van de pijl genoemd, en het komt er in feite op neer dat het

32
00:02:21,320 --> 00:02:22,550
‫een maat is.

33
00:02:22,550 --> 00:02:25,940
‫Dus we krijgen de richting maar een maat van één.

34
00:02:25,940 --> 00:02:31,460
‫Dus dat stelt ons in staat om deze telling te weten, in wezen de grootte van de snelheid, hoe snel we gaan.

35
00:02:32,090 --> 00:02:39,050
‫En wat we dan kunnen doen is die richting vermenigvuldigen met de hoeveelheid van onze afstand om ons een

36
00:02:39,050 --> 00:02:45,140
‫pijl te geven die ons de hele beweging van de startlocatie naar de eindlocatie geeft.

37
00:02:45,140 --> 00:02:46,070
‫Precies.

38
00:02:46,460 --> 00:02:49,520
‫Laten we dus eens kijken hoe we dit in C++ kunnen doen.

39
00:02:49,820 --> 00:02:52,400
‫Wat we zoeken is een nieuwe startlocatie.

40
00:02:52,400 --> 00:02:58,610
‫Dus laten we verwijderen hoe we dit momenteel doen en we gaan een startlocatie hebben die gelijk is aan, nou ja, waar gaat

41
00:02:58,610 --> 00:02:59,700
‫het gelijk aan zijn?

42
00:02:59,720 --> 00:03:05,060
‫Het zal gelijk zijn aan, ten eerste, de startlocatie plus iets, omdat we vanaf

43
00:03:05,060 --> 00:03:10,550
‫hier beginnen en we voegen deze groene vector toe om bij het einde te komen.

44
00:03:11,000 --> 00:03:13,010
‫Dus wat is die groene vector daar?

45
00:03:13,760 --> 00:03:18,710
‫Wel, dat is waar we de normaal van de platformsnelheid moeten krijgen.

46
00:03:18,710 --> 00:03:24,680
‫En om het voor ons gemakkelijker te maken om het te begrijpen, ga ik dat opsplitsen in zijn eigen variabele.

47
00:03:24,690 --> 00:03:32,540
‫Dus we gaan een heel nieuwe type effector maken, die ik de bewegingsrichting ga noemen, gewoon om

48
00:03:32,660 --> 00:03:38,000
‫het superduidelijk te maken wat we erin proberen op te

49
00:03:38,000 --> 00:03:47,750
‫slaan en dan gaan we naar haal dit van de platformsnelheidspunt, ga veilig, normaal en dan wat haakjes rond het einde.

50
00:03:47,810 --> 00:03:48,890
‫Dus wat is hier aan de hand?

51
00:03:48,890 --> 00:03:50,600
‫Dit hebben we nog niet eerder gezien.

52
00:03:50,600 --> 00:03:54,740
‫We hebben punten gebruikt om de componenten van de vector, de X, Y en Z, te bemachtigen.

53
00:03:54,740 --> 00:03:55,700
‫Dat waren variabelen.

54
00:03:56,180 --> 00:04:04,520
‫Maar in C++ en in objectgeoriënteerd programmeren in het algemeen, hebben we ook functies die in klassen bestaan, dus we

55
00:04:04,520 --> 00:04:08,480
‫kunnen de DOT-operator gebruiken om er een te bemachtigen.

56
00:04:08,480 --> 00:04:12,980
‫We hebben de dubbele punt gebruikt toen we probeerden het uit de klas zelf te krijgen.

57
00:04:13,370 --> 00:04:20,630
‫Maar als we een bewerking willen uitvoeren met de eigenlijke vector zelf, dus platformsnelheidsvector, kunnen we de

58
00:04:20,630 --> 00:04:25,460
‫puntoperator gebruiken om de normaal van de gebonden vector te krijgen.

59
00:04:25,490 --> 00:04:30,620
‫Dus dat is wat we hier doen, met behulp van een lidfunctie in plaats van een lidvariabele.

60
00:04:31,190 --> 00:04:37,070
‫Dus we hebben de veilige normaal van die platformsnelheid en puntkomma, het einde van de regel, want hier hebben

61
00:04:37,070 --> 00:04:41,150
‫we een variabele waarvan we in wezen zeggen dat dit de bewegingsrichting is.

62
00:04:41,480 --> 00:04:50,270
‫Dus nu kunnen we dat in de volgende regel gebruiken om een verplaatsingsrichting te doen vermenigvuldigd met de verplaatsingsafstand

63
00:04:50,270 --> 00:04:56,690
‫die is geconfigureerd omdat we precies naar het einde willen gaan, niet voorbijschieten.

64
00:04:56,870 --> 00:05:01,790
‫En nadat we dat hebben gedaan, zouden we ons platform eigenlijk naar de eindlocatie moeten verplaatsen.

65
00:05:01,790 --> 00:05:08,570
‫Dus we gaan een vaste acteurslocatie doen als startlocatie, omdat ons platform anders voorbij die eindlocatie is geraakt

66
00:05:08,570 --> 00:05:14,720
‫en voorbij die eindlocatie is gegaan omdat we het hebben bijgewerkt met de huidige locatie, wat

67
00:05:14,720 --> 00:05:16,250
‫de overshotlocatie is.

68
00:05:16,790 --> 00:05:20,000
‫Zodat we precies naar het eindpunt kunnen gaan.

69
00:05:20,050 --> 00:05:23,470
‫En dan starten vanaf die nieuwe startlocatie.

70
00:05:23,860 --> 00:05:28,960
‫Nu is het belangrijk dat we de platformsnelheid bijwerken nadat we dit allemaal hebben gedaan, omdat we

71
00:05:28,960 --> 00:05:31,430
‫het gebruiken om de bewegingsrichtingen te verkrijgen.

72
00:05:31,460 --> 00:05:35,950
‫Ik ga de platformsnelheid updaten nadat we de acteurslocatie hebben ingesteld.

73
00:05:36,400 --> 00:05:40,660
‫Laten we nu teruggaan naar Unreal en op compileren drukken en kijken of dit is opgelost.

74
00:05:40,660 --> 00:05:43,750
‫Het probleem met ons platform dat heen en weer beweegt.

75
00:05:43,990 --> 00:05:47,110
‫Laten we deze terminal sluiten en op play drukken.

76
00:05:47,230 --> 00:05:53,890
‫En als we nu kijken, het platform beweegt snel, maar beweegt betrouwbaar rond de begin- en

77
00:05:53,890 --> 00:05:55,960
‫eindlocatie, zouden we verwachten.

78
00:05:56,020 --> 00:05:58,900
‫Dus dat is alles wat ik wilde bespreken in deze lezing, en dat is correct.

79
00:05:58,900 --> 00:06:03,830
‫Een klein foutje dat zich had kunnen voordoen bij sommige van onze platformconfiguraties.

80
00:06:03,850 --> 00:06:05,140
‫Ik zie wel in de volgende.

