﻿1
00:00:04,780 --> 00:00:05,920
‫Ciao e Benvenuto.

2
00:00:05,920 --> 00:00:11,800
‫In questa lezione impareremo come ottenere output dalle funzioni in C++.

3
00:00:12,130 --> 00:00:18,940
‫E lo useremo per semplificare enormemente il nostro codice e per iniziare a implementare parte dello pseudocodice che

4
00:00:18,940 --> 00:00:19,750
‫abbiamo scritto.

5
00:00:19,780 --> 00:00:20,560
‫Immergiamoci.

6
00:00:21,070 --> 00:00:26,290
‫Quindi, prima di provare a capire i valori restituiti dalle funzioni, facciamo una breve deviazione e comprendiamolo.

7
00:00:26,290 --> 00:00:29,110
‫Due concetti aggiungono altri due concetti al nostro in modo colossale.

8
00:00:29,650 --> 00:00:32,080
‫Quindi il primo è l'espressione.

9
00:00:32,080 --> 00:00:36,880
‫Un'espressione è un frammento di codice che produce un valore.

10
00:00:37,120 --> 00:00:42,940
‫E c'è l'istruzione che è un frammento di codice che è un'azione da eseguire.

11
00:00:43,660 --> 00:00:50,980
‫Ora questi due hanno effettivamente una relazione in quanto un'espressione è quasi sempre un'affermazione in quanto per calcolare

12
00:00:51,130 --> 00:00:56,830
‫il valore di un frammento di codice, è necessario che sia un'azione da eseguire.

13
00:00:57,250 --> 00:01:00,970
‫Ma lo stesso non è necessariamente vero il contrario.

14
00:01:00,970 --> 00:01:04,510
‫Una dichiarazione non sempre ti darà un valore.

15
00:01:04,990 --> 00:01:09,850
‫Quindi diamo un'occhiata ad alcuni esempi di espressioni e ad alcune cose che non provengono dal codice che

16
00:01:09,850 --> 00:01:10,720
‫abbiamo già scritto.

17
00:01:11,260 --> 00:01:20,350
‫Quindi, quando digitiamo il mio vettore in C++, questa è un'espressione perché ha il valore di tutto ciò che è memorizzato all'interno

18
00:01:20,350 --> 00:01:22,300
‫della mia variabile vettore.

19
00:01:22,570 --> 00:01:24,700
‫Lo stesso vale per il vettore locale.

20
00:01:24,720 --> 00:01:32,500
‫In effetti, se hai un vettore locale più punto z, quella stessa è un'espressione e un vettore locale punto z

21
00:01:32,500 --> 00:01:33,670
‫più 100.

22
00:01:33,940 --> 00:01:40,570
‫Anche questa è un'espressione, perché il vettore locale punto z ti ha dato il valore all'interno del membro

23
00:01:40,870 --> 00:01:41,410
‫Z.

24
00:01:41,710 --> 00:01:46,900
‫E quando aggiungi 100, questo ti dà un nuovo valore che ha l'aggiunta di 100.

25
00:01:46,900 --> 00:01:48,430
‫Quindi queste sono tutte espressioni.

26
00:01:49,030 --> 00:01:55,330
‫Tuttavia, qualcosa che non è un'espressione è quando abbiamo dichiarato il nostro vettore locale, quando abbiamo detto vettore, vettore locale è uguale al

27
00:01:55,330 --> 00:01:58,810
‫mio vettore e mettiamo un punto e virgola alla fine della linea.

28
00:01:58,810 --> 00:02:00,970
‫Non possiamo usarlo per ottenere un valore.

29
00:02:00,970 --> 00:02:02,530
‫Non c'è alcun valore lì.

30
00:02:02,530 --> 00:02:06,160
‫Sta solo dicendo a C++ che Ecco un'azione da eseguire.

31
00:02:06,430 --> 00:02:09,100
‫Voglio che crei un nuovo vettore locale.

32
00:02:09,460 --> 00:02:11,740
‫Quindi non è un'espressione.

33
00:02:12,370 --> 00:02:16,960
‫Tuttavia, qualcosa che è un'espressione è ottenere la posizione dell'attore.

34
00:02:16,960 --> 00:02:20,920
‫È una funzione che stiamo chiamando perché ci sono parentesi alla fine qui.

35
00:02:20,920 --> 00:02:22,660
‫In realtà non abbiamo argomenti qui.

36
00:02:22,660 --> 00:02:26,230
‫Questa è una lista vuota di argomenti, ma sta chiamando qualcosa.

37
00:02:26,230 --> 00:02:34,720
‫E poiché questa funzione ha un valore di ritorno, il pezzo di codice effettivo qui è un'espressione che assume il valore di

38
00:02:34,720 --> 00:02:37,750
‫tutto ciò che viene restituito dalla funzione.

39
00:02:37,750 --> 00:02:44,230
‫E questo è essenzialmente lo stesso delle penne di output che abbiamo visto in precedenza in un progetto.

40
00:02:44,260 --> 00:02:50,770
‫Tranne che con i blueprint, puoi avere un solo valore di output da una funzione.

41
00:02:50,770 --> 00:02:52,360
‫C'è solo un valore di ritorno.

42
00:02:52,750 --> 00:02:59,590
‫Quindi è quello che possiamo usare qui dove abbiamo scritto il nostro pseudocodice che dice ottieni la posizione corrente.

43
00:02:59,890 --> 00:03:02,410
‫È lì che lo faremo.

44
00:03:02,410 --> 00:03:08,380
‫Otterremo la posizione utilizzando la nostra posizione di accesso.

45
00:03:08,380 --> 00:03:11,050
‫Quindi creiamo qui una nuova variabile locale.

46
00:03:11,470 --> 00:03:14,560
‫Avremo una nuova variabile locale chiamata F di tipo effetto.

47
00:03:14,560 --> 00:03:21,370
‫Deve essere un vettore di tipo S perché questo è il tipo restituito da get in

48
00:03:21,370 --> 00:03:31,900
‫una posizione e chiameremo questa posizione corrente e la imposteremo uguale al risultato dell'espressione, ottenere la posizione dell'attore e quindi impostare le parentesi di parentesi

49
00:03:32,020 --> 00:03:37,300
‫corrispondenti e quindi un punto e virgola per terminare la riga.

50
00:03:37,690 --> 00:03:44,050
‫Quindi, se analizziamo un po' questa frase, possiamo vedere che questo pezzo qui, la posizione dell'atto di get e

51
00:03:44,050 --> 00:03:49,780
‫le parentesi è l'espressione che ci sta ottenendo il valore, che è la posizione attuale dell'attore.

52
00:03:50,380 --> 00:03:56,860
‫Quindi stiamo facendo un incarico alla posizione attuale, che viene dichiarata anche qui.

53
00:03:57,160 --> 00:04:00,520
‫Quindi su questa riga, tutta questa riga non è un'espressione.

54
00:04:00,520 --> 00:04:02,860
‫Non c'è alcun valore in esso, è una dichiarazione.

55
00:04:03,280 --> 00:04:09,670
‫E di solito puoi dire un'istruzione perché in C++ termina con un punto e virgola.

56
00:04:09,820 --> 00:04:16,750
‫Ok, quindi questo essenzialmente ci consentirà di eliminare il mio vettore e i vettori locali che

57
00:04:16,750 --> 00:04:23,590
‫abbiamo utilizzato in precedenza perché dovremmo essere in grado di aggiornare la nostra variabile locale

58
00:04:23,590 --> 00:04:29,200
‫qui, questa posizione corrente che abbiamo ottenuto dal posizione del nostro attore.

59
00:04:29,620 --> 00:04:34,300
‫Quindi quello che faremo è più in basso, abbiamo un commento che dice, imposta la posizione.

60
00:04:34,300 --> 00:04:45,220
‫Quindi, dopo quella riga di commento, farò una posizione dell'attore impostato usando l'espressione posizione corrente, che sta solo usando quel valore di variabile e quindi inserirò un punto

61
00:04:45,430 --> 00:04:50,200
‫e virgola alla fine della riga per dire che tutta questa cosa

62
00:04:50,200 --> 00:04:51,430
‫è un'affermazione.

63
00:04:51,430 --> 00:04:58,960
‫Vogliamo che esegua questa azione impostata in una posizione e noti che mentre i miei commenti sono rientrati, ho deciso

64
00:04:58,960 --> 00:05:04,060
‫di non indentare il codice da abbinare perché di solito lo vogliamo.

65
00:05:04,600 --> 00:05:08,890
‫I codici devono essere a un livello di rientro all'interno della funzione.

66
00:05:09,760 --> 00:05:15,430
‫Ora quello che posso fare è rimuovere tutto il codice che avevamo in precedenza, tutto ciò che riguarda il vettore locale, il

67
00:05:15,430 --> 00:05:19,420
‫mio vettore impostato in una posizione usando il vettore locale, posso rimuovere tutto questo.

68
00:05:19,780 --> 00:05:23,530
‫In modo che tutto ciò che abbiamo ora siano le cose attorno ai nostri commenti.

69
00:05:24,100 --> 00:05:27,060
‫E inoltre, andrò nel file di intestazione e ripulirò un po' le cose qui.

70
00:05:27,070 --> 00:05:28,660
‫Non abbiamo più bisogno del mio vettore.

71
00:05:28,660 --> 00:05:31,390
‫Non abbiamo più bisogno delle mie proprietà ex u.

72
00:05:31,390 --> 00:05:34,270
‫Quindi eliminerò anche questi.

73
00:05:34,510 --> 00:05:39,930
‫Ora ovviamente la piattaforma mobile CP in realtà non fa molto perché otteniamo la posizione attuale

74
00:05:39,940 --> 00:05:44,560
‫dell'attore, quindi la impostiamo di nuovo, il che sostanzialmente non ha alcun effetto.

75
00:05:44,680 --> 00:05:52,630
‫Quindi vorrei che provassi ad aggiornare la posizione corrente della piattaforma mobile in quella funzione di spunta.

76
00:05:53,110 --> 00:05:56,470
‫Quindi usa i membri X o Y come meglio credi.

77
00:05:56,470 --> 00:05:57,730
‫Bene, X andrà avanti.

78
00:05:57,730 --> 00:06:05,170
‫Y ti sposterà a destra, quindi potrai aggiungerlo e riassegnarlo al membro, come abbiamo fatto in precedenza, per

79
00:06:05,170 --> 00:06:08,500
‫aggiornare la posizione delle nostre piattaforme mobili.

80
00:06:08,950 --> 00:06:15,880
‫Quindi aggiungine uno o due a seconda della velocità con cui vuoi che la piattaforma si muova e poi sposta la piattaforma

81
00:06:15,880 --> 00:06:20,830
‫nella sua posizione iniziale perché ora non abbiamo quella variabile membro per dirgli la posizione

82
00:06:20,830 --> 00:06:23,770
‫iniziale, in realtà stiamo usando la posizione corrente.

83
00:06:23,980 --> 00:06:28,690
‫Quindi, ovunque posizioni quella piattaforma, è da lì che inizierà la piattaforma.

84
00:06:29,290 --> 00:06:35,140
‫E poi vorrei che compilassi e provassi il tuo codice e vedessi se si sta muovendo, come ti aspetteresti.

85
00:06:35,380 --> 00:06:36,970
‫Metti in pausa il video e prova.

86
00:06:40,000 --> 00:06:40,320
‫Bene.

87
00:06:40,330 --> 00:06:41,020
‫Ben tornato.

88
00:06:41,350 --> 00:06:47,110
‫Quindi collocheremo questa riga di codice appena sotto il commento che ne parla, aggiungeremo il

89
00:06:47,200 --> 00:06:48,970
‫vettore a quella posizione.

90
00:06:49,630 --> 00:06:55,000
‫E il motivo per cui lo stiamo mettendo qui è a causa dell'ordine in cui vogliamo ottenere la

91
00:06:55,000 --> 00:06:56,790
‫posizione corrente, aggiornarla e quindi impostarla.

92
00:06:56,800 --> 00:06:59,530
‫Non vogliamo che succeda qualcosa di sbagliato lì.

93
00:07:00,100 --> 00:07:04,750
‫Se dovessimo aggiornarlo prima di creare la variabile, beh, quella variabile non esisterebbe.

94
00:07:04,750 --> 00:07:06,250
‫Ricorda, è una variabile locale.

95
00:07:06,550 --> 00:07:10,870
‫Esiste solo dopo averlo creato all'interno di questa particolare chiamata della funzione.

96
00:07:11,260 --> 00:07:16,690
‫E se lo avessimo fatto dopo aver impostato di nuovo una posizione, quella modifica sarebbe stata semplicemente

97
00:07:16,690 --> 00:07:19,960
‫eliminata quando siamo arrivati alla chiusura Brice nella funzione.

98
00:07:20,440 --> 00:07:29,200
‫Quindi imposteremo la posizione corrente punto x, userò uguale alla posizione corrente, punto x più uno e quindi

99
00:07:29,410 --> 00:07:33,940
‫inserirò punto e virgola alla fine della riga.

100
00:07:34,270 --> 00:07:40,030
‫E torneremo a Unreal e premeremo il pulsante di compilazione.

101
00:07:40,210 --> 00:07:45,580
‫E come ho già detto, ora dobbiamo spostare questa piattaforma mobile nella sua posizione iniziale.

102
00:07:45,590 --> 00:07:51,430
‫Quindi farò clic su un personaggio in terza persona e copierò la sua posizione facendo clic con il pulsante destro del mouse sulla posizione,

103
00:07:51,430 --> 00:07:56,020
‫premendo copia, quindi andando sulla nostra piattaforma mobile, facendo clic con il pulsante destro del mouse sulla sua posizione,

104
00:07:56,020 --> 00:07:56,740
‫premendo Incolla.

105
00:07:56,740 --> 00:08:01,270
‫Quindi questo mette la piattaforma direttamente all'interno del nostro giocatore, che in realtà non è quello che vogliamo.

106
00:08:01,630 --> 00:08:09,190
‫Quindi lo sposterò leggermente a destra del giocatore in questo modo e posso vedere se è all'altezza

107
00:08:09,190 --> 00:08:09,760
‫giusta.

108
00:08:09,760 --> 00:08:15,370
‫Penso che lo farò un po' più in basso, che è uno dei vantaggi dell'utilizzo della posizione attuale piuttosto che

109
00:08:15,370 --> 00:08:19,900
‫di una variabile di posizione, è che posso effettivamente vedere dove sarà questa piattaforma nel

110
00:08:19,900 --> 00:08:20,350
‫mondo.

111
00:08:20,890 --> 00:08:26,860
‫Quindi ora se vado avanti e premo play, puoi vedere che la piattaforma si sta muovendo bene

112
00:08:26,860 --> 00:08:27,940
‫nella direzione X.

113
00:08:27,970 --> 00:08:31,440
‫Posso ancora saltarci sopra ed essere spostato con esso.

114
00:08:31,450 --> 00:08:32,260
‫Roba fantastica.

115
00:08:32,560 --> 00:08:36,310
‫Ora abbiamo imparato come funzionano i valori di ritorno dalle funzioni.

116
00:08:36,520 --> 00:08:42,880
‫Stiamo davvero iniziando a capire molti dei concetti dei progetti nel mondo C++.

117
00:08:43,210 --> 00:08:44,650
‫Ci vediamo alla prossima lezione.

