﻿1
00:00:03,990 --> 00:00:05,150
‫Ciao e Benvenuto.

2
00:00:05,160 --> 00:00:07,920
‫In questa lezione, implementeremo piattaforme mobili.

3
00:00:07,920 --> 00:00:13,500
‫In realtà faremo muovere questa piattaforma comprendendo qualcosa chiamato ciclo di gioco e come la

4
00:00:13,500 --> 00:00:16,860
‫funzione tick in C++ si collega ad esso.

5
00:00:16,920 --> 00:00:18,960
‫Immergiamoci e scopriamolo.

6
00:00:19,470 --> 00:00:24,930
‫Quindi, fino a questo punto, abbiamo ignorato questa funzione qui, la funzione tick.

7
00:00:24,930 --> 00:00:29,250
‫Abbiamo messo tutto in gioco perché è quello che abbiamo usato prima in Blueprint.

8
00:00:29,520 --> 00:00:32,280
‫Ma facciamo un po' di luce su questa funzione tick.

9
00:00:32,370 --> 00:00:38,310
‫Per capire tick, dobbiamo comprendere il concetto di loop di gioco, ed è così che la maggior parte dei

10
00:00:38,310 --> 00:00:40,560
‫motori di gioco costruirà il proprio motore.

11
00:00:40,560 --> 00:00:46,110
‫Il modo in cui funziona è che, prima di tutto, il motore di gioco prenderà l'input dal giocatore.

12
00:00:46,110 --> 00:00:52,260
‫Quindi, qualunque cosa stia succedendo, se la barra spaziatrice è abbassata o se è il tasto W, se il mouse si

13
00:00:52,260 --> 00:00:56,340
‫è appena spostato un po' o se un pulsante del mouse è abbassato, tutta

14
00:00:56,340 --> 00:01:00,060
‫quella roba verrà assorbita dal motore di gioco e dal processo.

15
00:01:00,510 --> 00:01:05,610
‫Quindi la prossima cosa è che le informazioni verranno utilizzate per aggiornare lo stato del gioco.

16
00:01:05,610 --> 00:01:10,500
‫Forse il giocatore avanzerà un po', forse una palla rimbalzerà, tutto quel genere di cose

17
00:01:10,500 --> 00:01:16,950
‫verrà calcolato e i motori fisici funzioneranno e tutto quel genere di cose fantastiche che abbiamo visto nei nostri giochi

18
00:01:16,950 --> 00:01:17,280
‫precedenti.

19
00:01:17,280 --> 00:01:21,870
‫E poi il terzo passaggio è che il motore di gioco prenderà lo stato del gioco

20
00:01:21,870 --> 00:01:27,840
‫e dirà, ok, bene, il giocatore è qui e la telecamera è qui, la palla è laggiù e la visualizzerà sul display.

21
00:01:27,840 --> 00:01:33,780
‫Lo trasformerà da un insieme di numeri in un'immagine da visualizzare sullo schermo.

22
00:01:34,260 --> 00:01:41,880
‫Ora, quell'immagine è chiamata cornice, una cornice è una singola immagine in una serie di immagini che compongono

23
00:01:41,880 --> 00:01:43,020
‫un video.

24
00:01:43,470 --> 00:01:50,490
‫Ora, il tuo computer potrebbe essere in grado di eseguire il rendering di moltissimi fotogrammi al secondo, oppure potrebbe renderizzare di

25
00:01:50,850 --> 00:01:53,370
‫meno, ma questo è chiamato frame rate.

26
00:01:53,370 --> 00:01:58,650
‫Quanti fotogrammi al secondo può attraversare il ciclo di gioco del tuo computer?

27
00:01:58,650 --> 00:02:02,760
‫Con quale frequenza può elaborare l'input dello stato della data ed eseguirne il rendering?

28
00:02:03,300 --> 00:02:10,980
‫Questi sono i fotogrammi al secondo e in unreal usiamo la funzione tick per aiutarci a fare il passaggio centrale del ciclo di

29
00:02:10,980 --> 00:02:12,720
‫gioco per aiutarci ad aggiornare.

30
00:02:13,320 --> 00:02:19,530
‫Lo stato del nostro gioco è una funzione che viene chiamata ogni frame e progetto esistente, nonché un

31
00:02:19,530 --> 00:02:20,070
‫evento.

32
00:02:20,400 --> 00:02:27,120
‫Quindi ottieni l'evento tick e sostanzialmente ti consente di fare qualcosa per aggiornare il tuo gioco ogni singolo

33
00:02:27,120 --> 00:02:27,510
‫frame.

34
00:02:27,880 --> 00:02:33,630
‫Ora, nel nostro caso, quello che vogliamo fare con questo è consentirgli di spostare la nostra piattaforma.

35
00:02:33,720 --> 00:02:35,100
‫Allora come potremmo farlo?

36
00:02:35,100 --> 00:02:42,930
‫Bene, se prendiamo il nostro set in una posizione e lo rimuoviamo dal gameplay e invece aggiorniamo quella

37
00:02:42,930 --> 00:02:49,860
‫posizione in tecnologia, inizialmente non funzionerà molto perché imposteremo semplicemente aggiornando costantemente la nostra posizione

38
00:02:49,860 --> 00:02:51,660
‫sulla stessa posizione.

39
00:02:51,660 --> 00:02:59,940
‫Se impostiamo la posizione dell'attore, il mio vettore e poi il punto e virgola, è solo ogni singolo fotogramma, ogni singola iterazione

40
00:02:59,940 --> 00:03:01,890
‫del ciclo di gioco.

41
00:03:02,250 --> 00:03:04,950
‫Metterà solo l'attore nello stesso posto.

42
00:03:05,460 --> 00:03:11,760
‫Tuttavia, dove questo diventa interessante è se aggiorniamo il valore all'interno del mio vettore.

43
00:03:11,760 --> 00:03:24,390
‫Quindi quello che possiamo fare è dire che il mio vettore punto z è uguale al mio vettore punto z più uno.

44
00:03:24,990 --> 00:03:30,960
‫Quindi quello che stiamo facendo qui è prendere il valore che attualmente risiede nel mio punto vettoriale z.

45
00:03:31,410 --> 00:03:41,370
‫Ne stiamo aggiungendo uno e poi prendiamo l'intero risultato e lo reinseriamo nel mio punto vettoriale z.

46
00:03:42,060 --> 00:03:48,960
‫Quindi ogni volta che attraversiamo questo ciclo di gioco e il tick viene chiamato dal motore irreale, il mio punto

47
00:03:48,960 --> 00:03:51,360
‫vettoriale z dovrebbe aumentare di uno.

48
00:03:51,870 --> 00:03:53,670
‫Quindi vediamo qual è il risultato di questo.

49
00:03:53,670 --> 00:04:00,030
‫Entriamo in Unreal e premiamo il pulsante di compilazione, quindi andiamo avanti e premiamo play.

50
00:04:00,180 --> 00:04:07,080
‫Dovremmo vedere che quella piattaforma si sta alzando, fluttuando nell'aria perché sto aumentando la sua posizione Z,

51
00:04:07,080 --> 00:04:11,010
‫quindi la sto facendo andare sempre più in alto.

52
00:04:11,100 --> 00:04:16,500
‫Quindi vorrei che provassi a cambiare Y invece di cambiare Z.

53
00:04:16,920 --> 00:04:18,930
‫Quindi cambia la riga di codice corretta.

54
00:04:18,930 --> 00:04:21,510
‫Hai apportato queste modifiche in più di un luogo.

55
00:04:21,930 --> 00:04:24,450
‫Ridimensiona il cubo della piattaforma.

56
00:04:24,450 --> 00:04:31,230
‫Quindi c'è una buona piattaforma su cui saltare e vedere se ora l'aggiornamento di Y invece di aggiornare Z ti consente

57
00:04:31,230 --> 00:04:34,920
‫di saltare sulla piattaforma, mettere in posa il video e provare.

58
00:04:38,140 --> 00:04:38,710
‫Bene.

59
00:04:38,710 --> 00:04:39,410
‫Ben tornato.

60
00:04:39,430 --> 00:04:41,950
‫Quindi tuffiamoci nel codice di Visual Studio.

61
00:04:42,370 --> 00:04:49,330
‫E quello che vogliamo fare è impostare il mio vettore punto y uguale al mio vettore punto y più uno.

62
00:04:49,630 --> 00:04:54,670
‫Quindi si muoverà lungo l'asse Y anziché l'asse Z.

63
00:04:55,210 --> 00:05:00,310
‫E quindi imposteremo la posizione di ogni fotogramma sul risultato memorizzato nella variabile my

64
00:05:00,310 --> 00:05:00,850
‫vector.

65
00:05:01,270 --> 00:05:04,870
‫Quindi torneremo in Unreal e ci assicureremo di compilare.

66
00:05:04,990 --> 00:05:12,100
‫Quindi cercheremo il contorno della piattaforma mobile e la selezioneremo, andremo al riquadro dei dettagli.

67
00:05:12,940 --> 00:05:19,540
‫E qui in pratica vogliamo fare doppio clic sulla piattaforma in modo da poterla vedere e poi

68
00:05:19,540 --> 00:05:20,890
‫scalarla un po'.

69
00:05:20,890 --> 00:05:29,050
‫Quindi userò lo strumento scala con il tasto R e aumenterò la scala Y e la scala X e diminuirò

70
00:05:29,470 --> 00:05:30,970
‫la scala Z.

71
00:05:30,970 --> 00:05:37,120
‫Quindi la mia piattaforma è un po' più corta, quindi potremmo anche salvare il livello

72
00:05:37,150 --> 00:05:41,260
‫di hit play e la piattaforma fluttua alla mia destra.

73
00:05:41,380 --> 00:05:44,800
‫Quindi è anche più grande, il che significa che posso salire e starci sopra.

74
00:05:45,310 --> 00:05:49,570
‫E poi andiamo, abbiamo la nostra prima piccola meccanica di gioco, abbiamo una piattaforma mobile.

75
00:05:49,570 --> 00:05:54,070
‫Non va avanti e indietro che ne scopriremo un po' di più nelle

76
00:05:54,070 --> 00:05:55,090
‫prossime lezioni.

77
00:05:55,450 --> 00:06:00,370
‫Ma per ora, abbiamo effettivamente implementato alcune funzionalità di gioco in C++.

78
00:06:00,370 --> 00:06:02,530
‫Penso che dovresti essere molto orgoglioso di te stesso in questo momento.

79
00:06:02,530 --> 00:06:05,710
‫Datti una pacca sulla spalla e ci vediamo alla prossima lezione.

