‫Ciao e Benvenuto.
‫In questa lezione impareremo come ottenere output dalle funzioni in C++.
‫E lo useremo per semplificare enormemente il nostro codice e per iniziare a implementare parte dello pseudocodice che
‫abbiamo scritto.
‫Immergiamoci.
‫Quindi, prima di provare a capire i valori restituiti dalle funzioni, facciamo una breve deviazione e comprendiamolo.
‫Due concetti aggiungono altri due concetti al nostro in modo colossale.
‫Quindi il primo è l'espressione.
‫Un'espressione è un frammento di codice che produce un valore.
‫E c'è l'istruzione che è un frammento di codice che è un'azione da eseguire.
‫Ora questi due hanno effettivamente una relazione in quanto un'espressione è quasi sempre un'affermazione in quanto per calcolare
‫il valore di un frammento di codice, è necessario che sia un'azione da eseguire.
‫Ma lo stesso non è necessariamente vero il contrario.
‫Una dichiarazione non sempre ti darà un valore.
‫Quindi diamo un'occhiata ad alcuni esempi di espressioni e ad alcune cose che non provengono dal codice che
‫abbiamo già scritto.
‫Quindi, quando digitiamo il mio vettore in C++, questa è un'espressione perché ha il valore di tutto ciò che è memorizzato all'interno
‫della mia variabile vettore.
‫Lo stesso vale per il vettore locale.
‫In effetti, se hai un vettore locale più punto z, quella stessa è un'espressione e un vettore locale punto z
‫più 100.
‫Anche questa è un'espressione, perché il vettore locale punto z ti ha dato il valore all'interno del membro
‫Z.
‫E quando aggiungi 100, questo ti dà un nuovo valore che ha l'aggiunta di 100.
‫Quindi queste sono tutte espressioni.
‫Tuttavia, qualcosa che non è un'espressione è quando abbiamo dichiarato il nostro vettore locale, quando abbiamo detto vettore, vettore locale è uguale al
‫mio vettore e mettiamo un punto e virgola alla fine della linea.
‫Non possiamo usarlo per ottenere un valore.
‫Non c'è alcun valore lì.
‫Sta solo dicendo a C++ che Ecco un'azione da eseguire.
‫Voglio che crei un nuovo vettore locale.
‫Quindi non è un'espressione.
‫Tuttavia, qualcosa che è un'espressione è ottenere la posizione dell'attore.
‫È una funzione che stiamo chiamando perché ci sono parentesi alla fine qui.
‫In realtà non abbiamo argomenti qui.
‫Questa è una lista vuota di argomenti, ma sta chiamando qualcosa.
‫E poiché questa funzione ha un valore di ritorno, il pezzo di codice effettivo qui è un'espressione che assume il valore di
‫tutto ciò che viene restituito dalla funzione.
‫E questo è essenzialmente lo stesso delle penne di output che abbiamo visto in precedenza in un progetto.
‫Tranne che con i blueprint, puoi avere un solo valore di output da una funzione.
‫C'è solo un valore di ritorno.
‫Quindi è quello che possiamo usare qui dove abbiamo scritto il nostro pseudocodice che dice ottieni la posizione corrente.
‫È lì che lo faremo.
‫Otterremo la posizione utilizzando la nostra posizione di accesso.
‫Quindi creiamo qui una nuova variabile locale.
‫Avremo una nuova variabile locale chiamata F di tipo effetto.
‫Deve essere un vettore di tipo S perché questo è il tipo restituito da get in
‫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
‫corrispondenti e quindi un punto e virgola per terminare la riga.
‫Quindi, se analizziamo un po' questa frase, possiamo vedere che questo pezzo qui, la posizione dell'atto di get e
‫le parentesi è l'espressione che ci sta ottenendo il valore, che è la posizione attuale dell'attore.
‫Quindi stiamo facendo un incarico alla posizione attuale, che viene dichiarata anche qui.
‫Quindi su questa riga, tutta questa riga non è un'espressione.
‫Non c'è alcun valore in esso, è una dichiarazione.
‫E di solito puoi dire un'istruzione perché in C++ termina con un punto e virgola.
‫Ok, quindi questo essenzialmente ci consentirà di eliminare il mio vettore e i vettori locali che
‫abbiamo utilizzato in precedenza perché dovremmo essere in grado di aggiornare la nostra variabile locale
‫qui, questa posizione corrente che abbiamo ottenuto dal posizione del nostro attore.
‫Quindi quello che faremo è più in basso, abbiamo un commento che dice, imposta la posizione.
‫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
‫e virgola alla fine della riga per dire che tutta questa cosa
‫è un'affermazione.
‫Vogliamo che esegua questa azione impostata in una posizione e noti che mentre i miei commenti sono rientrati, ho deciso
‫di non indentare il codice da abbinare perché di solito lo vogliamo.
‫I codici devono essere a un livello di rientro all'interno della funzione.
‫Ora quello che posso fare è rimuovere tutto il codice che avevamo in precedenza, tutto ciò che riguarda il vettore locale, il
‫mio vettore impostato in una posizione usando il vettore locale, posso rimuovere tutto questo.
‫In modo che tutto ciò che abbiamo ora siano le cose attorno ai nostri commenti.
‫E inoltre, andrò nel file di intestazione e ripulirò un po' le cose qui.
‫Non abbiamo più bisogno del mio vettore.
‫Non abbiamo più bisogno delle mie proprietà ex u.
‫Quindi eliminerò anche questi.
‫Ora ovviamente la piattaforma mobile CP in realtà non fa molto perché otteniamo la posizione attuale
‫dell'attore, quindi la impostiamo di nuovo, il che sostanzialmente non ha alcun effetto.
‫Quindi vorrei che provassi ad aggiornare la posizione corrente della piattaforma mobile in quella funzione di spunta.
‫Quindi usa i membri X o Y come meglio credi.
‫Bene, X andrà avanti.
‫Y ti sposterà a destra, quindi potrai aggiungerlo e riassegnarlo al membro, come abbiamo fatto in precedenza, per
‫aggiornare la posizione delle nostre piattaforme mobili.
‫Quindi aggiungine uno o due a seconda della velocità con cui vuoi che la piattaforma si muova e poi sposta la piattaforma
‫nella sua posizione iniziale perché ora non abbiamo quella variabile membro per dirgli la posizione
‫iniziale, in realtà stiamo usando la posizione corrente.
‫Quindi, ovunque posizioni quella piattaforma, è da lì che inizierà la piattaforma.
‫E poi vorrei che compilassi e provassi il tuo codice e vedessi se si sta muovendo, come ti aspetteresti.
‫Metti in pausa il video e prova.
‫Bene.
‫Ben tornato.
‫Quindi collocheremo questa riga di codice appena sotto il commento che ne parla, aggiungeremo il
‫vettore a quella posizione.
‫E il motivo per cui lo stiamo mettendo qui è a causa dell'ordine in cui vogliamo ottenere la
‫posizione corrente, aggiornarla e quindi impostarla.
‫Non vogliamo che succeda qualcosa di sbagliato lì.
‫Se dovessimo aggiornarlo prima di creare la variabile, beh, quella variabile non esisterebbe.
‫Ricorda, è una variabile locale.
‫Esiste solo dopo averlo creato all'interno di questa particolare chiamata della funzione.
‫E se lo avessimo fatto dopo aver impostato di nuovo una posizione, quella modifica sarebbe stata semplicemente
‫eliminata quando siamo arrivati alla chiusura Brice nella funzione.
‫Quindi imposteremo la posizione corrente punto x, userò uguale alla posizione corrente, punto x più uno e quindi
‫inserirò punto e virgola alla fine della riga.
‫E torneremo a Unreal e premeremo il pulsante di compilazione.
‫E come ho già detto, ora dobbiamo spostare questa piattaforma mobile nella sua posizione iniziale.
‫Quindi farò clic su un personaggio in terza persona e copierò la sua posizione facendo clic con il pulsante destro del mouse sulla posizione,
‫premendo copia, quindi andando sulla nostra piattaforma mobile, facendo clic con il pulsante destro del mouse sulla sua posizione,
‫premendo Incolla.
‫Quindi questo mette la piattaforma direttamente all'interno del nostro giocatore, che in realtà non è quello che vogliamo.
‫Quindi lo sposterò leggermente a destra del giocatore in questo modo e posso vedere se è all'altezza
‫giusta.
‫Penso che lo farò un po' più in basso, che è uno dei vantaggi dell'utilizzo della posizione attuale piuttosto che
‫di una variabile di posizione, è che posso effettivamente vedere dove sarà questa piattaforma nel
‫mondo.
‫Quindi ora se vado avanti e premo play, puoi vedere che la piattaforma si sta muovendo bene
‫nella direzione X.
‫Posso ancora saltarci sopra ed essere spostato con esso.
‫Roba fantastica.
‫Ora abbiamo imparato come funzionano i valori di ritorno dalle funzioni.
‫Stiamo davvero iniziando a capire molti dei concetti dei progetti nel mondo C++.
‫Ci vediamo alla prossima lezione.