﻿1
00:00:04,460 --> 00:00:05,430
‫Ciao e Benvenuto.

2
00:00:05,430 --> 00:00:11,630
‫In questa lezione, vedremo come possiamo impostare la nostra piattaforma mobile usando una velocità vettoriale nelle sue

3
00:00:11,630 --> 00:00:12,650
‫variabili membro.

4
00:00:12,980 --> 00:00:18,680
‫E vedremo come possiamo rendere indipendente la sua frequenza dei fotogrammi di movimento usando qualcosa chiamato

5
00:00:18,680 --> 00:00:19,550
‫Delta time.

6
00:00:19,550 --> 00:00:20,660
‫Va bene, tuffiamoci.

7
00:00:21,260 --> 00:00:27,900
‫Quindi, fino a questo punto, abbiamo aggiornato solo un singolo componente del nostro vettore alla volta.

8
00:00:28,310 --> 00:00:31,010
‫E se ti dicessi che non dobbiamo farlo in questo modo?

9
00:00:31,010 --> 00:00:35,840
‫E se riuscissimo ad aggiornare l'intero vettore di una certa quantità in una volta sola?

10
00:00:36,230 --> 00:00:36,890
‫Bene, possiamo.

11
00:00:36,920 --> 00:00:41,390
‫I vettori possono essere aggiunti ad altri fattori se abbiamo visto nella sezione precedente.

12
00:00:41,390 --> 00:00:47,180
‫Quindi quello che potremmo fare è passare alla nostra piattaforma mobile su H e creare qualcosa che sia

13
00:00:47,180 --> 00:00:53,300
‫la nostra piattaforma mobile, il vettore di velocità che ci dice sia la direzione che la velocità a cui vogliamo andare.

14
00:00:53,690 --> 00:01:01,100
‫Quindi il modo in cui lo facciamo è creare una U di proprietà ormai piuttosto familiare e la

15
00:01:01,280 --> 00:01:07,520
‫faremo modificare ovunque in modo che sia visibile nell'ispettore e quindi sarà un vettore

16
00:01:07,520 --> 00:01:15,710
‫di tipo F come abbiamo fatto prima, e la chiameremo la velocità della piattaforma e possiamo darle qualcosa per ora.

17
00:01:15,710 --> 00:01:23,060
‫Quindi faremo un costruttore di vettori F e poi gli daremo solo centinaia di centinaia nel componente X e zero e

18
00:01:23,060 --> 00:01:26,720
‫zero negli altri e poi punto e virgola per terminarlo.

19
00:01:27,110 --> 00:01:32,900
‫E voglio mostrarti solo un altro trucco qui è che insieme alla modifica, ovunque possiamo inserire un altro

20
00:01:32,900 --> 00:01:35,210
‫argomento separato da virgola in questa U.

21
00:01:35,210 --> 00:01:38,390
‫Cosa di proprietà, che assomiglia un po' a una funzione.

22
00:01:38,390 --> 00:01:46,100
‫In realtà, puoi metterne uno che si chiama categoria con la C maiuscola e poi mettere il segno di uguale.

23
00:01:46,100 --> 00:01:50,810
‫E di solito non lascio uno spazio tra questi sono segni di uguale categoria uguale.

24
00:01:50,810 --> 00:01:54,110
‫E poi puoi dare una categoria che vuoi mostrare.

25
00:01:54,440 --> 00:01:58,160
‫Qui sotto puoi vedere che ci sono categorie per trasformare la replica del rendering.

26
00:01:58,160 --> 00:02:03,020
‫Questi sono i tipi di categorie che intendiamo chiamare piattaforma mobile mia in modo da avere una specie

27
00:02:03,020 --> 00:02:05,840
‫di categoria piattaforma mobile in cui inserire queste variabili.

28
00:02:05,990 --> 00:02:10,370
‫E nota che uso le virgolette doppie attorno a quella categoria.

29
00:02:10,670 --> 00:02:11,840
‫Questa è la sintassi corretta.

30
00:02:11,840 --> 00:02:13,010
‫Devi includerli.

31
00:02:13,790 --> 00:02:22,700
‫E poi quello che possiamo fare è usare questa nuova variabile membro nel C++.

32
00:02:22,700 --> 00:02:29,480
‫Quindi, invece di impostare la componente X della posizione corrente, lasciami rimuovere completamente quella

33
00:02:29,480 --> 00:02:42,080
‫linea e riscriverla poiché la posizione corrente è uguale alla posizione corrente più la velocità della piattaforma, ad esempio, metti punto e virgola alla fine della

34
00:02:42,080 --> 00:02:48,590
‫linea e andiamo in Unreal e premi compila e guarda come va.

35
00:02:48,770 --> 00:02:50,480
‫Quindi è stato compilato correttamente.

36
00:02:50,480 --> 00:02:56,630
‫E puoi vedere che ora ho questa sezione della piattaforma mobile sulla mia piattaforma mobile con una velocità della piattaforma e

37
00:02:56,630 --> 00:02:59,120
‫il suo componente x è impostato su 100.

38
00:02:59,120 --> 00:03:00,770
‫Cosa succede se vado e premo play?

39
00:03:00,920 --> 00:03:05,810
‫Bene, la piattaforma accelera rapidamente in lontananza perché sto aggiungendo cento unità ogni singolo

40
00:03:05,810 --> 00:03:06,260
‫fotogramma.

41
00:03:06,620 --> 00:03:07,940
‫Questo è molto.

42
00:03:08,210 --> 00:03:13,760
‫Ma voglio che si muova a una velocità di circa 100 centimetri al secondo.

43
00:03:13,760 --> 00:03:14,960
‫È solo un metro al secondo.

44
00:03:14,960 --> 00:03:16,310
‫Non è molto veloce.

45
00:03:16,700 --> 00:03:18,860
‫Allora perché va così veloce?

46
00:03:18,980 --> 00:03:20,390
‫Bene, a causa del mio frame rate.

47
00:03:20,390 --> 00:03:23,810
‫Bene, se fossi su un sistema più lento, si muoverebbe più lentamente.

48
00:03:23,810 --> 00:03:25,880
‫E se fossi su un sistema più veloce, si muoverebbe più velocemente.

49
00:03:25,880 --> 00:03:26,960
‫Non sembra avere senso.

50
00:03:27,320 --> 00:03:29,900
‫Quindi parliamo dell'utilizzo del tempo Delta.

51
00:03:29,900 --> 00:03:31,190
‫Che cos'è l'ora delta?

52
00:03:31,760 --> 00:03:38,900
‫Bene, l'uso del tempo Delta in Unreal può dirci quanto tempo impiegava l'esecuzione di ogni fotogramma era il tempo Delta.

53
00:03:38,900 --> 00:03:45,650
‫Bene, se vai al codice di Visual Studio, puoi vedere che il tempo delta è una variabile menzionata qui all'inizio

54
00:03:45,650 --> 00:03:46,610
‫di Take.

55
00:03:46,610 --> 00:03:49,280
‫Questo è in realtà un parametro di input.

56
00:03:49,280 --> 00:03:51,500
‫È l'input per la nostra funzione.

57
00:03:51,770 --> 00:03:52,970
‫Quindi possiamo usarlo qui.

58
00:03:53,150 --> 00:03:58,160
‫In sostanza, come usiamo una variabile locale, possiamo usarla all'interno del corpo della funzione tick.

59
00:03:58,940 --> 00:04:01,490
‫Quindi ci dice quanto tempo ha impiegato un frame per essere eseguito.

60
00:04:01,490 --> 00:04:02,570
‫Ma perché è così importante?

61
00:04:02,570 --> 00:04:09,620
‫Perché quando moltiplichiamo qualcosa per il tempo delta, essenzialmente rende il nostro frame rate di gioco indipendente, il che significa sostanzialmente

62
00:04:09,620 --> 00:04:14,570
‫che il gioco si comporta allo stesso modo su un computer veloce o lento.

63
00:04:14,690 --> 00:04:20,090
‫Quindi diamo un'occhiata a un esempio illustrativo se voglio spostare ogni secondo qualcosa di un'unità

64
00:04:20,090 --> 00:04:20,930
‫a sinistra.

65
00:04:21,410 --> 00:04:23,390
‫Ecco come sarebbe su macchine diverse.

66
00:04:23,390 --> 00:04:24,290
‫Ho un calcolo lento.

67
00:04:24,290 --> 00:04:29,780
‫Posso fare solo dieci fotogrammi al secondo su un computer veloce, che può fare 100 fotogrammi al secondo.

68
00:04:29,810 --> 00:04:32,570
‫Ora la durata di quei frame è diversa.

69
00:04:32,570 --> 00:04:36,350
‫Quindi sul computer lento, la durata del frame è 0. 1 di secondo.

70
00:04:36,350 --> 00:04:42,590
‫Se riuscissi a inserirne solo dieci in un secondo e su un computer veloce, lo sarebbe. 01 di secondo, tanto meno perché può

71
00:04:42,590 --> 00:04:45,320
‫eseguire le cose più velocemente.

72
00:04:45,320 --> 00:04:47,360
‫Non ci vuole molto tempo per calcolare il frame.

73
00:04:48,080 --> 00:04:54,290
‫Quindi, se moltiplico per la durata del fotogramma, moltiplico la mia unità per la durata del fotogramma.

74
00:04:54,590 --> 00:04:58,070
‫Quindi lo vedrai in 1/2.

75
00:04:58,070 --> 00:05:03,500
‫Quindi, dove sono stati eseguiti dieci fotogrammi, ottengo un'unità di movimento.

76
00:05:03,860 --> 00:05:05,090
‫E lo stesso è vero.

77
00:05:05,090 --> 00:05:11,420
‫Se ho eseguito 100 fotogrammi di esecuzione, ottengo comunque un'unità di movimento.

78
00:05:11,450 --> 00:05:15,520
‫Quindi vorrei sfidarti a moltiplicare per il tempo delta.

79
00:05:15,530 --> 00:05:21,620
‫Quindi quello che faremo è ricordare che possiamo moltiplicare i vettori per un valore in virgola mobile

80
00:05:21,980 --> 00:05:23,720
‫per scalare quella magnitudine.

81
00:05:24,230 --> 00:05:29,110
‫E il modo in cui possiamo farlo in C++ è usare l'operatore star.

82
00:05:29,120 --> 00:05:30,530
‫È così che facciamo la moltiplicazione.

83
00:05:30,530 --> 00:05:32,930
‫Non esiste un operatore di segno di moltiplicazione.

84
00:05:32,930 --> 00:05:37,820
‫Sarebbe confuso con una X, quindi usiamo l'operatore stella per denotare la moltiplicazione.

85
00:05:38,420 --> 00:05:41,900
‫E vorrei che compilassi e provassi i tuoi risultati.

86
00:05:41,900 --> 00:05:45,710
‫Quindi moltiplica per delta tempo, moltiplica la velocità per delta tempo e guarda cosa succede.

87
00:05:46,460 --> 00:05:47,600
‫Metti in pausa, video e prova.

88
00:05:50,690 --> 00:05:51,290
‫Bene.

89
00:05:51,300 --> 00:05:51,940
‫Ben tornato.

90
00:05:51,950 --> 00:05:54,800
‫Quindi è la velocità della piattaforma che vogliamo che si moltiplichi qui.

91
00:05:55,370 --> 00:06:00,530
‫Ora, potremmo estrarlo in una variabile separata, ma in realtà possiamo semplicemente mettere una moltiplicazione per

92
00:06:00,770 --> 00:06:06,500
‫delta alla fine di quella riga, ovviamente prima del punto e virgola, perché è prima della fine

93
00:06:06,500 --> 00:06:07,100
‫dell'istruzione.

94
00:06:07,790 --> 00:06:13,610
‫E la cosa interessante qui è che c'è un po' di precedenza di

95
00:06:13,610 --> 00:06:20,930
‫operatori qui in quanto la moltiplicazione tra la velocità della piattaforma e il tempo delta avverrà prima

96
00:06:20,960 --> 00:06:22,940
‫dell'aggiunta alla posizione corrente.

97
00:06:22,970 --> 00:06:27,850
‫Ora questo segue le normali regole matematiche per un elenco completo di quelle regole.

98
00:06:27,860 --> 00:06:33,470
‫Non entrerò nei dettagli proprio qui, ma puoi dare un'occhiata alla pagina sull'ordine

99
00:06:33,470 --> 00:06:35,330
‫delle operazioni su Wikipedia.

100
00:06:35,570 --> 00:06:40,760
‫Ci sono molte regole diverse in lingue diverse, che si tratti di massa corporea, massa del letto, massa dell'animale domestico, massa

101
00:06:40,760 --> 00:06:41,420
‫del letto.

102
00:06:41,660 --> 00:06:43,010
‫Ci sono un sacco di acronimi diversi.

103
00:06:43,010 --> 00:06:46,850
‫Quindi, qualunque cosa tu sia cresciuto usando, è quello che ti consiglierei di usare.

104
00:06:47,060 --> 00:06:50,180
‫Per me era massa corporea, ma sai, in altri posti è diverso.

105
00:06:50,540 --> 00:06:55,070
‫Quindi vale la pena notare che possiamo semplicemente scriverlo in questo modo.

106
00:06:55,280 --> 00:07:00,380
‫Ma se volessimo assicurarci che qualcosa accada in un ordine diverso da quello, allora puoi usare

107
00:07:00,380 --> 00:07:02,030
‫le parentesi per indicarlo.

108
00:07:02,030 --> 00:07:07,460
‫Quindi potrei, solo per rendere le cose più chiare, metterò parentesi attorno a questa moltiplicazione solo per mostrarti che

109
00:07:07,460 --> 00:07:08,930
‫è quello che succede.

110
00:07:08,930 --> 00:07:12,920
‫Prima la moltiplicazione e poi l'addizione alla posizione corrente.

111
00:07:13,580 --> 00:07:16,340
‫Quindi entriamo in Unreal e testiamolo.

112
00:07:16,340 --> 00:07:19,370
‫Colpiremo, compileremo e, una volta terminato, premiamo play.

113
00:07:19,520 --> 00:07:24,350
‫E ora vediamo le piattaforme muoversi a una velocità molto più normale perché in realtà si muove a

114
00:07:24,350 --> 00:07:27,800
‫un metro al secondo, il che va bene per una piattaforma mobile.

115
00:07:28,220 --> 00:07:35,540
‫Quindi puoi vedere che questo ci ha aiutato entrambi a ridurre la velocità, ma ora anche questo è un frame rate, una velocità

116
00:07:35,540 --> 00:07:36,110
‫indipendente.

117
00:07:36,470 --> 00:07:40,610
‫Se il mio computer si muoveva perché c'era qualcos'altro in background, questo sembrerebbe sempre

118
00:07:40,610 --> 00:07:43,460
‫lo stesso e giocherebbe lo stesso nel gioco.

119
00:07:43,490 --> 00:07:44,030
‫Roba fantastica.

120
00:07:44,030 --> 00:07:46,370
‫Ci vediamo alla prossima lezione.

