‫Ciao e Benvenuto.
‫In questa lezione, faremo il refactoring del nostro codice per rendere la nostra funzione grab più piccola e più
‫leggibile.
‫E useremo di nuovo i parametri.
‫Questa volta creeremo effettivamente una funzione che lo prende come parametro.
‫Immergiamoci e vediamo come farlo.
‫Quindi è generalmente consigliabile che le funzioni cerchino di adattarsi a un singolo schermo.
‫Ora, nel mio caso, il mio schermo è molto grande.
‫Ma stiamo ancora imparando.
‫Quindi in realtà ha senso avere funzioni ancora più piccole per rendere le cose comprensibili.
‫E penso che questa funzione di cattura sia diventata troppo lunga, quindi penso che possiamo suddividerla in unità abbastanza funzionali.
‫Il primo sarà il bit che esegue lo sweep e fa tutto il calcolo dei vettori di
‫inizio e fine e restituisce il risultato del colpo e se abbiamo colpito o meno.
‫Il booleano che dice se abbiamo colpito e il secondo bit è all'interno dell'istruzione if
‫che probabilmente possiamo lasciare come compito di afferrare perché in realtà ha a che fare con l'afferrare, giusto?
‫Dobbiamo svegliare il corpo rigido.
‫Dobbiamo prendere un componente che abbia senso essere un metodo chiamato in una funzione chiamata grab.
‫Ma quest'altra roba è un po' più tangenziale.
‫È più un'utilità che dobbiamo inserire.
‫Quindi vorrei sfidarti a creare quell'utilità, a prendere una palla a portata di mano.
‫Questo è ciò che penso dovrebbe essere chiamato, la cosa che descrive ciò che fa quel pezzo di codice.
‫Quindi estrai tutto quel codice di scansione in una nuova funzione privata, come pensare a quali dovrebbero essere i suoi parametri e il
‫suo valore di ritorno.
‫Ricorda, hai due uscite.
‫Quindi abbiamo un risultato colpito e colpito.
‫Quindi devi pensare di provare a utilizzare un parametro out per farlo funzionare.
‫Ora, se vuoi un piccolo suggerimento, ti mostrerò cosa inserirò nel file di intestazione in un
‫secondo.
‫In caso contrario, puoi mettere in pausa il video in questo momento.
‫In caso contrario, ti do il suggerimento.
‫Quindi andremo a prendere un punto h e sotto dove dobbiamo
‫gestire fisicamente, avremo un tipo di ritorno booleano per dirci se c'è qualcosa che possiamo
‫ottenere qualcosa afferra bene prendiamo un palla in portata quindi dobbiamo dargli un parametro che sarà un parametro
‫out.
‫Quindi sarà un riferimento non costante al risultato del colpo F per riferimento.
‫E commerciale e poi chiameremo il risultato del colpo alternativo in questo modo.
‫E poi penso che questo non cambierà nulla nella nostra funzione, quindi possiamo renderla costante.
‫Sono piccoli punti bonus se ci avevi già pensato.
‫Quindi vai avanti, metti in pausa, video e prova a compilare quella funzione nel file C++.
‫Bene.
‫Ben tornato.
‫Quindi lo copierò in C++.
‫Lo metterò sotto il nostro componente di impugnatura fisica per abbinare l'ordine che abbiamo ottenuto nel file
‫di intestazione.
‫Aggiungerò l'U grabber davanti.
‫Lo farò rientrare correttamente.
‫Aggiungerò invece del punto e virgola, le parentesi graffe e poi sposterò il codice che
‫abbiamo preso in mano.
‫Quindi a partire dalla riga 53 per me, fino a 65.
‫Ho intenzione di tagliare fuori tutto questo.
‫Lo sostituirò con qualcosa in appena un secondo.
‫Lo incollerò per prendere una palla a portata di mano.
‫E abbiamo questo risultato di successo che abbiamo creato.
‫Quello che possiamo fare è definirlo, risultati di successo uguali al nostro risultato di successo che abbiamo qui.
‫Potremmo volerlo fare solo se ne abbiamo colpiti due, quindi possiamo mettere che se l'istruzione ha colpito in questo
‫modo e avvolgere questo compito, l'out colpisce i risultati di hit all'interno dell'istruzione if e quindi possiamo andare avanti
‫e al fine della funzione, solo return ha colpito in questo modo ora c'è un'ottimizzazione o un miglioramento che può
‫essere apportato qui perché stiamo passando per riferimento nel canale di sweep e in grab ball a
‫portata.
‫In realtà non è necessario creare un nuovo risultato di successo qui e quindi copiarlo nel risultato di successo.
‫Questo è solo uno spreco di memoria.
‫Quello che possiamo fare è rimuovere il risultato del colpo che stiamo creando all'interno, ottenere la palla a portata di mano.
‫E invece possiamo semplicemente usare il riferimento che abbiamo passato per passare direttamente allo sweep singolo per
‫canale.
‫Quindi sta effettivamente passando questo riferimento alle funzioni nello sweep singolo per canale in cui
‫verrà popolato.
‫Ciò elimina la necessità dell'istruzione if, rendendo questa funzione un po' più veloce e facile da
‫leggere.
‫E in effetti, non penso che abbiamo nemmeno bisogno di una variabile per memorizzare gli hit.
‫Possiamo solo andare avanti e tornare.
‫Sarà molto più pulito restituire i risultati del canale Get World Suite.
‫Quindi stiamo solo passando i risultati da quello attraverso il backup per essere afferrabili a portata di mano o chiunque lo
‫stia chiamando.
‫Quindi, parlando di chiunque lo stia chiamando, ora dobbiamo passare alla nostra presa.
‫Dobbiamo creare il nostro risultato di successo da qualche parte.
‫Dobbiamo crearlo qui.
‫Quindi colpisci il risultato, questo è quello che andremo a popolare.
‫Creeremo quindi una variabile brillante che sarà hit per impostare quella uguale a se prendi
‫una palla a portata di mano e passeremo il risultato del colpo per riferimento che vogliamo
‫popolato.
‫E poi, se abbiamo colpito, andremo avanti ed eseguiremo il codice di acquisizione.
‫Roba fantastica.
‫Abbiamo spostato qualcosa al suo interno in una funzione per adattare questa funzione di cattura su un singolo schermo.
‫E abbiamo di nuovo utilizzato i nostri parametri, questa volta creando una funzione per noi stessi che li usiamo
‫sul serio.
‫Ci vediamo nel prossimo video.