[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.22,0:00:04.03,Default,,0000,0000,0000,,Lad os fortsætte med at se,\Nhvad vi kan gøre med objekter. Dialogue: 0,0:00:04.03,0:00:07.93,Default,,0000,0000,0000,,Vi er tilbage med det program\Nvi brugte i modulet om funktioner. Dialogue: 0,0:00:07.93,0:00:10.61,Default,,0000,0000,0000,,Dette program har funktionen 'drawWinston' Dialogue: 0,0:00:10.61,0:00:14.51,Default,,0000,0000,0000,,som kan tegne Winston\Nved visse x'er og y'er. Dialogue: 0,0:00:14.51,0:00:18.04,Default,,0000,0000,0000,,Her kalder vi 'drawWinston' fire gange. Dialogue: 0,0:00:18.04,0:00:20.81,Default,,0000,0000,0000,,Hver gange med et forskelligt\Nsæt af x- og y-koordinater. Dialogue: 0,0:00:20.81,0:00:23.26,Default,,0000,0000,0000,,Du kender mig jo. Dialogue: 0,0:00:23.26,0:00:25.89,Default,,0000,0000,0000,,Når jeg ser disse fire kald\Npå 'drawWinston', Dialogue: 0,0:00:25.89,0:00:29.43,Default,,0000,0000,0000,,der ser så ens ud,\Nså tænker jeg straks på, Dialogue: 0,0:00:29.43,0:00:32.32,Default,,0000,0000,0000,,hvor meget bedre det ville\Nvære at bruge en løkke Dialogue: 0,0:00:32.32,0:00:36.19,Default,,0000,0000,0000,,og kalde den én gang inde i løkken Dialogue: 0,0:00:36.19,0:00:39.30,Default,,0000,0000,0000,,og ændre x og y i hvert\Naf løkkens gennemløb. Dialogue: 0,0:00:39.30,0:00:45.50,Default,,0000,0000,0000,,For at gøre det skal vi gemme disse\Nx- og y-positioner i et array, Dialogue: 0,0:00:45.50,0:00:47.45,Default,,0000,0000,0000,,som kan gennemløbes. Dialogue: 0,0:00:47.45,0:00:52.22,Default,,0000,0000,0000,,Vi har to sæt af værdier,\Nså vi kan lave to arrays. Dialogue: 0,0:00:52.22,0:00:56.36,Default,,0000,0000,0000,,Et for x-positionerne og\Net for y-positionerne. Dialogue: 0,0:00:56.36,0:01:02.68,Default,,0000,0000,0000,,Vi taster\N>var xPositions = [99, 294, 101, 294];< og Dialogue: 0,0:01:02.68,0:01:08.87,Default,,0000,0000,0000,,>var yPositions = [117, 117, 316, 316];< Dialogue: 0,0:01:08.87,0:01:12.78,Default,,0000,0000,0000,,Nu kan vi gennemløbe disse\Nved at bruge en for-løkke. Dialogue: 0,0:01:12.78,0:01:18.67,Default,,0000,0000,0000,,>for (var i = 0; i < xPositions.length; i++)< Dialogue: 0,0:01:18.67,0:01:21.13,Default,,0000,0000,0000,,som gennemløber hvert element i xPositions Dialogue: 0,0:01:21.13,0:01:23.22,Default,,0000,0000,0000,,og vi tegner Winston med Dialogue: 0,0:01:23.22,0:01:30.51,Default,,0000,0000,0000,,>drawWinston(xPositions[i], yPositions[i]);< Dialogue: 0,0:01:30.51,0:01:34.53,Default,,0000,0000,0000,,Okay, lad os se om det virker,\Nnår vi sletter dette. Dialogue: 0,0:01:34.53,0:01:35.60,Default,,0000,0000,0000,,Okay, det virker. Dialogue: 0,0:01:35.60,0:01:40.88,Default,,0000,0000,0000,,Nu har vi denne ene linje med kode,\Nder tegner Winston Dialogue: 0,0:01:40.88,0:01:44.98,Default,,0000,0000,0000,,og gør det i hver position\Ni arrayet xPositions. Dialogue: 0,0:01:44.98,0:01:49.84,Default,,0000,0000,0000,,Vi kan tilføje flere positioner\Nved at skrive 10 og 1 Dialogue: 0,0:01:49.85,0:01:53.25,Default,,0000,0000,0000,,og 1 og 1 Dialogue: 0,0:01:53.25,0:01:58.29,Default,,0000,0000,0000,,og 100 og 1. Dialogue: 0,0:01:58.29,0:02:01.72,Default,,0000,0000,0000,,Det begynder at se lidt rodet ud, Dialogue: 0,0:02:01.72,0:02:03.07,Default,,0000,0000,0000,,og det kan jeg ikke lide, Dialogue: 0,0:02:03.07,0:02:08.44,Default,,0000,0000,0000,,da det er svært at se,\Nhvilket x der hører til hvilket y. Dialogue: 0,0:02:08.44,0:02:14.45,Default,,0000,0000,0000,,Det skal være nemt at se mine x og y par Dialogue: 0,0:02:14.45,0:02:21.44,Default,,0000,0000,0000,,uden jeg skal forsøge at skrive dem\Nunder hinanden på denne måde. Dialogue: 0,0:02:21.44,0:02:26.72,Default,,0000,0000,0000,,Jeg vil gerne gemme disse\Npositioner på en anden måde. Dialogue: 0,0:02:26.72,0:02:30.83,Default,,0000,0000,0000,,En ide er i stedet at gemme dem i objekter Dialogue: 0,0:02:30.83,0:02:36.02,Default,,0000,0000,0000,,da hver position består af\Nto informationer, x og y. Dialogue: 0,0:02:36.02,0:02:39.73,Default,,0000,0000,0000,,Vi kan lave et objekt\Nmed egenskaberne x og y. Dialogue: 0,0:02:39.73,0:02:44.61,Default,,0000,0000,0000,,Og dernæst kan vi have et array af\Nobjekter med disse x- og y-positioner. Dialogue: 0,0:02:44.61,0:02:45.63,Default,,0000,0000,0000,,Lad os gøre det. Dialogue: 0,0:02:45.63,0:02:49.23,Default,,0000,0000,0000,,Vi taster >var positions = [];< Dialogue: 0,0:02:49.23,0:02:51.42,Default,,0000,0000,0000,,da det skal være et array, Dialogue: 0,0:02:51.42,0:02:54.29,Default,,0000,0000,0000,,men i stedet for\Nat hvert element er et tal, Dialogue: 0,0:02:54.29,0:02:56.54,Default,,0000,0000,0000,,så skal det være et objekt. Dialogue: 0,0:02:56.54,0:03:04.51,Default,,0000,0000,0000,,Vi bruger derfor {} og\Nindsætter x: 99, y: 117. Dialogue: 0,0:03:04.51,0:03:08.50,Default,,0000,0000,0000,,Nu har vi en af vores positioner. Dialogue: 0,0:03:08.50,0:03:10.100,Default,,0000,0000,0000,,Vi kan tilføje endnu en Dialogue: 0,0:03:10.100,0:03:14.02,Default,,0000,0000,0000,,>{x: 294, y: 117},< Dialogue: 0,0:03:14.02,0:03:19.09,Default,,0000,0000,0000,,hvor x er 294 og y er 117. Dialogue: 0,0:03:19.09,0:03:25.24,Default,,0000,0000,0000,,Den tredje er>{x: 101, y: 316},< Dialogue: 0,0:03:25.24,0:03:31.17,Default,,0000,0000,0000,,og den sidste er >{x: 294, y: 316},<. Dialogue: 0,0:03:31.17,0:03:34.74,Default,,0000,0000,0000,,Nu har vi et array af objekter, Dialogue: 0,0:03:34.74,0:03:38.80,Default,,0000,0000,0000,,hvor hvert objekt har egenskaberne x og y. Dialogue: 0,0:03:38.80,0:03:44.50,Default,,0000,0000,0000,,Hernede i vores for-løkke ændrer vi\Nden til at gennemløbe positions.length Dialogue: 0,0:03:44.50,0:03:49.09,Default,,0000,0000,0000,,og så indsætter vi objektet. Dialogue: 0,0:03:49.09,0:03:53.76,Default,,0000,0000,0000,,Lige nu er det hele objektet,\Nmen vi skal bruge x og y, Dialogue: 0,0:03:53.76,0:03:59.05,Default,,0000,0000,0000,,så vi skal ændrer det til\Nposition[i].x og positions[i].y Dialogue: 0,0:03:59.05,0:04:00.57,Default,,0000,0000,0000,,Sådan!!! Dialogue: 0,0:04:00.57,0:04:04.58,Default,,0000,0000,0000,,Nu kan vi fjerne disse\Ngamle kludrede arrays. Dialogue: 0,0:04:04.58,0:04:05.66,Default,,0000,0000,0000,,Flot. Dialogue: 0,0:04:05.66,0:04:09.61,Default,,0000,0000,0000,,Dette ser, for mig, meget pænere ud\Nog gør koden meget nemmere at læse. Dialogue: 0,0:04:09.61,0:04:12.96,Default,,0000,0000,0000,,Og når vi har mere læsbar kode,\Nså er det godt. Dialogue: 0,0:04:12.96,0:04:15.12,Default,,0000,0000,0000,,Det gør det også nemmere at tilføje noget. Dialogue: 0,0:04:15.12,0:04:19.06,Default,,0000,0000,0000,,Jeg tilføjer x y parret samlet. Dialogue: 0,0:04:19.06,0:04:22.82,Default,,0000,0000,0000,,Lad os sige >{x: 200, y: 200},< Dialogue: 0,0:04:22.82,0:04:26.52,Default,,0000,0000,0000,,og jeg får en Winston i midten. Dialogue: 0,0:04:26.52,0:04:27.48,Default,,0000,0000,0000,,Sejt. Dialogue: 0,0:04:27.48,0:04:31.33,Default,,0000,0000,0000,,Nu vil jeg vise dig noget,\Nder er endnu mere smart. Dialogue: 0,0:04:31.33,0:04:36.93,Default,,0000,0000,0000,,Bemærk at vores funktion lige nu\Naccepterer to tal Dialogue: 0,0:04:36.93,0:04:38.68,Default,,0000,0000,0000,,og dernæst bruger disse to tal. Dialogue: 0,0:04:38.68,0:04:42.13,Default,,0000,0000,0000,,Vi kan ændre vores funktion,\Nså den forventer et objekt Dialogue: 0,0:04:42.13,0:04:45.11,Default,,0000,0000,0000,,og får x og y fra dette objekt. Dialogue: 0,0:04:45.11,0:04:49.70,Default,,0000,0000,0000,,Hernede skal vi blot have\Nobjektet positions[i] Dialogue: 0,0:04:49.70,0:04:50.73,Default,,0000,0000,0000,,Lad os prøve det. Dialogue: 0,0:04:50.73,0:04:53.69,Default,,0000,0000,0000,,Vi bruger vores objekt,\Nmen nu virker det ikke. Dialogue: 0,0:04:53.69,0:04:57.40,Default,,0000,0000,0000,,Det er fordi vores funktion stadig\Nforventer to argumenter, Dialogue: 0,0:04:57.40,0:04:58.94,Default,,0000,0000,0000,,og den får kun ét. Dialogue: 0,0:04:58.94,0:05:02.35,Default,,0000,0000,0000,,Så vi ændrer funktionen til\Nkun at få 'facePosition'. Dialogue: 0,0:05:02.35,0:05:06.41,Default,,0000,0000,0000,,Nu får vi fejlen faceX er ikke defineret, Dialogue: 0,0:05:06.41,0:05:11.70,Default,,0000,0000,0000,,fordi vi før brugte faceX som et argument,\Nmen nu eksisterer det ikke. Dialogue: 0,0:05:11.70,0:05:13.41,Default,,0000,0000,0000,,i stedet har vi et objekt. Dialogue: 0,0:05:13.41,0:05:21.12,Default,,0000,0000,0000,,Det vi gør er, at gemme x positionen\Nfra objektet i variablen faceX. Dialogue: 0,0:05:21.12,0:05:24.52,Default,,0000,0000,0000,,Vi har dette objekt og\Nobjektet har egenskaben x, Dialogue: 0,0:05:24.54,0:05:28.19,Default,,0000,0000,0000,,så vi gemmer den i variablen faceX. Dialogue: 0,0:05:28.19,0:05:30.26,Default,,0000,0000,0000,,Og så gør vi det samme for y, Dialogue: 0,0:05:30.26,0:05:33.35,Default,,0000,0000,0000,,og taster >faceY = facePosition.y<. Dialogue: 0,0:05:33.35,0:05:34.97,Default,,0000,0000,0000,,Sådan. Dialogue: 0,0:05:34.97,0:05:38.16,Default,,0000,0000,0000,,I resten af funktionen bruges\NfaceX og faceY. Dialogue: 0,0:05:38.16,0:05:40.17,Default,,0000,0000,0000,,Vi skal sikre os, at de er stavet korrekt, Dialogue: 0,0:05:40.17,0:05:41.99,Default,,0000,0000,0000,,hvis vi brugte xx, så virker det ikke, Dialogue: 0,0:05:41.99,0:05:46.30,Default,,0000,0000,0000,,da det ikke er det, der står hernede\Ni vores array af objekter. Dialogue: 0,0:05:46.30,0:05:48.32,Default,,0000,0000,0000,,Det skal passe sammen. Dialogue: 0,0:05:48.32,0:05:49.90,Default,,0000,0000,0000,,Men det er ret smart. Dialogue: 0,0:05:49.90,0:05:51.77,Default,,0000,0000,0000,,Du kan have et array af objekter. Dialogue: 0,0:05:51.77,0:05:53.83,Default,,0000,0000,0000,,Du kan have funktioner,\Nder bruger objekter. Dialogue: 0,0:05:53.83,0:05:58.62,Default,,0000,0000,0000,,Du vil opdage at dine programmer bliver\Nret smarte på grund af den måde Dialogue: 0,0:05:58.62,0:06:00.31,Default,,0000,0000,0000,,de strukturer deres data. Dialogue: 0,0:06:00.31,0:06:04.22,Default,,0000,0000,0000,,Da du så tit har x og y, der hører sammen, Dialogue: 0,0:06:04.22,0:06:08.80,Default,,0000,0000,0000,,så vil du opdage, at de især er nyttige i\Ndine grafik og animationsprogrammer. Dialogue: 0,0:06:08.80,0:06:11.39,Default,,0000,0000,0000,,Så kom bare i gang og ha' det sjovt.