﻿1
00:00:04,180 --> 00:00:05,380
‫Ciao e Benvenuto.

2
00:00:05,470 --> 00:00:11,050
‫In questa lezione, esamineremo questi piccoli spilli e i diversi colori in cui entrano e

3
00:00:11,050 --> 00:00:17,140
‫capiremo che si tratta di tipi di dati diversi che limitano ciò che possiamo collegare a cosa.

4
00:00:17,950 --> 00:00:23,170
‫Quindi tuffiamoci dentro e diamo un'occhiata a cosa intendo per tipo di dati.

5
00:00:23,710 --> 00:00:31,660
‫Quindi una definizione abbastanza praticabile del tipo di dati è che è così che rappresenta determinati pezzi di dati in

6
00:00:31,690 --> 00:00:34,720
‫formato binario nella memoria del tuo computer.

7
00:00:35,440 --> 00:00:42,670
‫E ma può anche essere solo un modo per limitare ciò che possiamo fare con questo pezzo di dati.

8
00:00:42,700 --> 00:00:46,240
‫Quindi non si tratta necessariamente sempre di rappresentazioni diverse.

9
00:00:46,600 --> 00:00:55,030
‫E puoi pensarlo come la forma dei dati, nel senso che un piolo quadrato non può stare in un foro

10
00:00:55,030 --> 00:00:55,510
‫rotondo.

11
00:00:55,810 --> 00:01:00,460
‫Quindi non possiamo inserire il tipo sbagliato di dati nel tipo sbagliato di pin.

12
00:01:01,910 --> 00:01:04,320
‫Diamo quindi un'occhiata ad alcuni esempi di tipi di dati.

13
00:01:04,340 --> 00:01:07,400
‫C'è l'intero, che è un classico esempio.

14
00:01:07,610 --> 00:01:16,580
‫Un intero è un numero intero, quindi ha valori come 223 -14, ma non qualcosa come 1. 2.

15
00:01:16,790 --> 00:01:22,760
‫Sarebbe un float, che è l'abbreviazione di un numero in virgola mobile.

16
00:01:23,180 --> 00:01:28,850
‫E questi sono fondamentalmente numeri in cui hai un punto decimale e questi numeri possono

17
00:01:28,850 --> 00:01:33,620
‫essere molto grandi o molto piccoli, ma fondamentalmente non sono numeri interi.

18
00:01:33,620 --> 00:01:35,150
‫Possono essere anche negativi.

19
00:01:35,780 --> 00:01:36,830
‫E poi ci sono le stringhe.

20
00:01:36,830 --> 00:01:41,960
‫Ci siamo già imbattuti in stringhe, essendo le stringhe solo programmatrici, parlano per pezzi di testo.

21
00:01:42,290 --> 00:01:44,300
‫Ed è essenzialmente un tipo di dati.

22
00:01:44,330 --> 00:01:51,020
‫È un modo per archiviare parti di testo nella memoria in modo che possano essere qualsiasi cosa tu voglia, una palla davvero alta, sai,

23
00:01:51,140 --> 00:01:52,010
‫qualunque cosa.

24
00:01:52,010 --> 00:01:56,960
‫Tutte queste cose, tutti questi frammenti di testo sul mio schermo sono stringhe, probabilmente da qualche parte nella memoria del

25
00:01:56,960 --> 00:01:57,410
‫computer.

26
00:01:58,130 --> 00:02:01,130
‫E infine ci sono le bocce, che è l'abbreviazione di boolean.

27
00:02:01,130 --> 00:02:04,460
‫E questi hanno solo due valori possibili, vero o falso?

28
00:02:05,150 --> 00:02:11,990
‫Ora, questi tipi di dati sono fantastici, ma non puoi rappresentare un intero gioco con cose così

29
00:02:11,990 --> 00:02:12,800
‫semplici, vero?

30
00:02:13,160 --> 00:02:13,940
‫Bene, puoi.

31
00:02:13,940 --> 00:02:19,070
‫Se inizi a raggrupparli insieme in cose come oggetti.

32
00:02:19,310 --> 00:02:23,420
‫Una volta raggruppati insieme in un oggetto, iniziano a diventare più significativi.

33
00:02:23,420 --> 00:02:28,100
‫Puoi avere un numero intero per rappresentare l'età, puoi avere un float per rappresentare punti esperienza, quel

34
00:02:28,100 --> 00:02:29,150
‫tipo di cose.

35
00:02:29,510 --> 00:02:35,900
‫E un punto da notare è che oltre agli oggetti, abbiamo cose nel progetto chiamate struct.

36
00:02:36,260 --> 00:02:38,450
‫E non confonderti troppo qui.

37
00:02:38,450 --> 00:02:44,390
‫E uno struct è fondamentalmente lo stesso di un oggetto, tranne per il fatto che di solito è piuttosto piccolo

38
00:02:44,390 --> 00:02:49,580
‫e non usiamo riferimenti, li passiamo semplicemente in giro e li copiamo in memoria senza preoccuparci perché sono

39
00:02:49,640 --> 00:02:50,540
‫così piccoli.

40
00:02:51,080 --> 00:02:55,400
‫E un tipo di dati, come abbiamo detto, è la forma dei nostri dati.

41
00:02:56,210 --> 00:02:58,670
‫Quindi diamo un'occhiata ad alcuni esempi di struttura di oggetti.

42
00:02:58,670 --> 00:03:00,770
‫Quindi immagina di avere un avventuriero.

43
00:03:01,040 --> 00:03:03,410
‫Il nostro avventuriero potrebbe assomigliare un po' a questo.

44
00:03:03,410 --> 00:03:04,940
‫Questa è la forma dei suoi dati.

45
00:03:05,180 --> 00:03:10,760
‫Ha un numero intero per rappresentare il suo livello e un float per rappresentare punti esperienza rappresentativi.

46
00:03:11,000 --> 00:03:17,570
‫Ora potresti avere più istanze di avventuriero della stessa classe di avventuriero, quindi devono avere la stessa

47
00:03:17,570 --> 00:03:22,340
‫forma di dati, ma non devono avere lo stesso contenuto di dati.

48
00:03:22,550 --> 00:03:27,920
‫Puoi vedere qui che il secondo avventuriero ha un livello di 100 e per qualche motivo punti esperienza di meno

49
00:03:27,920 --> 00:03:28,250
‫cinque.

50
00:03:28,250 --> 00:03:34,820
‫Ma non importa che potresti anche avere un tipo diverso avendo una classe diversa di oggetti come il

51
00:03:34,820 --> 00:03:35,510
‫giocatore.

52
00:03:35,900 --> 00:03:37,880
‫E qui puoi vedere che la forma è diversa.

53
00:03:37,880 --> 00:03:45,350
‫Questi per l'avventura e il giocatore sono tipi non compatibili e comunque sai che questi giocatori hanno valori

54
00:03:45,350 --> 00:03:47,210
‫diversi memorizzati in loro.

55
00:03:47,210 --> 00:03:52,130
‫Hanno un nome di giocatore, hanno forse se usano un controller o meno come alcuni dei dati in essi

56
00:03:52,130 --> 00:03:52,640
‫contenuti.

57
00:03:52,820 --> 00:03:55,850
‫Ora diamo un'occhiata ad alcune strutture che abbiamo visto in passato.

58
00:03:55,850 --> 00:04:00,170
‫Ancora una volta, ricordando che struct e oggetti sono più o meno intercambiabili tranne che per le loro dimensioni.

59
00:04:00,740 --> 00:04:06,890
‫Quindi il primo che abbiamo visto parecchie volte è un vettore, e un vettore non è altro che tre float, tutto qui,

60
00:04:06,890 --> 00:04:11,150
‫è un float X, Y e Z, che può essere usato per rappresentare la posizione.

61
00:04:11,150 --> 00:04:16,850
‫Può anche essere usato per rappresentare la scala o l'abbiamo usato quando abbiamo inserito l'impulso nel nostro nodo

62
00:04:16,910 --> 00:04:18,140
‫di impulso ADD.

63
00:04:18,830 --> 00:04:20,960
‫Un'altra cosa che abbiamo visto di sfuggita è un rotatore.

64
00:04:21,200 --> 00:04:28,250
‫Ora nota che questo rotatore è anche solo tre float, ma ciò non significa che questi due tipi siano compatibili.

65
00:04:28,460 --> 00:04:34,880
‫Possiamo dare alle strutture nomi diversi in modo da salvarci dall'usarle accidentalmente in situazioni in cui

66
00:04:34,880 --> 00:04:35,810
‫non dovremmo.

67
00:04:36,830 --> 00:04:41,390
‫E possiamo metterli insieme e creare una struttura composta ancora più grande.

68
00:04:41,390 --> 00:04:48,770
‫La trasformazione, che è il luogo di rotazione e scala di un attore in una scena.

69
00:04:49,220 --> 00:04:54,350
‫Quindi puoi vedere qui che questa è una struttura composta da altre strutture e puoi fondamentalmente annidare

70
00:04:54,350 --> 00:04:58,340
‫queste cose quanto vuoi in quella struttura all'interno degli oggetti e così via.

71
00:04:58,340 --> 00:04:59,720
‫Possono diventare piuttosto complicati.

72
00:05:00,500 --> 00:05:03,680
‫Quindi diamo un'occhiata ad alcuni oggetti che abbiamo già visto in passato.

73
00:05:03,980 --> 00:05:06,950
‫Abbiamo esaminato tutti gli oggetti che sono attori.

74
00:05:06,950 --> 00:05:08,660
‫Sappiamo che gli attori sono un tipo di oggetto.

75
00:05:09,380 --> 00:05:11,800
‫Abbiamo visto attori che sono cubi.

76
00:05:11,810 --> 00:05:13,280
‫Questo è un altro tipo di oggetto.

77
00:05:13,550 --> 00:05:19,100
‫Abbiamo visto che anche il proiettile BP è un tipo di oggetto ed è un attore.

78
00:05:19,460 --> 00:05:24,620
‫E abbiamo visto che abbiamo componenti sui nostri attori, che sono anche tipi di oggetti.

79
00:05:24,620 --> 00:05:27,800
‫E il componente MASH statico ne è un esempio.

80
00:05:28,190 --> 00:05:32,780
‫Quindi abbiamo tutti questi e questi sono fatti di quei tipi di dati di base in basso.

81
00:05:32,780 --> 00:05:38,330
‫In fondo, potrebbero essere costituiti da strutture più complicate nel frattempo, ma si tratta di quei tipi di

82
00:05:38,330 --> 00:05:39,590
‫dati di base.

83
00:05:40,130 --> 00:05:46,220
‫E così quando andiamo a dare un'occhiata a un grafico come questo, possiamo vedere immediatamente dal colore che questo

84
00:05:46,220 --> 00:05:52,730
‫impulso è un vettore, ad esempio, che la posizione, la rotazione e la scala qui sono solo tre numeri in

85
00:05:52,730 --> 00:05:53,570
‫virgola mobile.

86
00:05:54,200 --> 00:05:58,580
‫E possiamo anche vedere che questa casella di controllo rossa per il cambio di velocità è booleana.

87
00:05:58,580 --> 00:05:59,990
‫È una risposta sì o no.

88
00:06:00,290 --> 00:06:00,880
‫Quindi iniziamo.

89
00:06:01,030 --> 00:06:07,210
‫Per capire che questi sono i tipi di dati che stanno vincolando ciò che possiamo collegare a cosa.

90
00:06:08,410 --> 00:06:14,560
‫Quindi, in sintesi, quello che abbiamo visto è che un tipo di dati è la forma dei nostri dati, che gli oggetti sono

91
00:06:14,560 --> 00:06:19,690
‫solo raccolte di dati e funzionalità, come abbiamo detto prima, che gli struct sono oggetti, ma di solito solo

92
00:06:19,690 --> 00:06:20,830
‫un po' più piccoli.

93
00:06:20,980 --> 00:06:23,500
‫E questo è più o meno quello che devi sapere.

94
00:06:23,830 --> 00:06:25,630
‫Ci vediamo alla prossima lezione.

