[MUSIC Playing] SPEAKER 1: Nos, itt vagyunk, Az utolsó P beállított CS50. Gratulálok magatokat attól, hogy olyan messzire, mivel az első helló világok és kinyomtatása piramisok a Mario. Ön tett egy website a múlt héten. És mi lesz, hogy egy másik ezen a héten, amelyik lehetővé teszi, hogy körbevezet a Harvard egyetemen, szedés fel CS50 tagból áll, és hozza őket vissza a lakóházak. Most a múlt héten dolgoztunk PHP, egy szerver oldali nyelv. Ehhez a P meg, mi vagyunk egyre bevezetésre JavaScript, ami egy kliens oldali nyelv. Szóval vessünk egy pillantást néhány a elosztás kód, ami nyújtott , hogy ezt a P halmaz. A JavaScript mappában, nem lesz egy csomó JavaScript fájlokat. Van buildings.js, amely egy tömb épületek körül Harvard campus, és az információ és helyzetét. Houses.js egy tömb a Harvard lakóházak, azok szélességi és hosszúsági fokok. Passengers.js tartalmaz array utasok - A CS50 munkatársak - hogy akkor hozza vissza a lakóházak. Math3D.js, hogy tartalmaz egy csomó funkciók köze a mozgalom. Ha matematikailag gondolkodású, akkor üdvözlöm, hogy egy pillantást. De nem kell, hogy megértsük Minden ott van. Shuttle.js, hogy foglalkozik a a komp mozgását. És index.html a honlapon, ahol a minden úgy történik, tényleg, ahol a felhasználó kölcsönhatásban áll az oldalon. Service.css a CSS stíluslap, amely azon túlmenően, hogy a Twitter Bootstrap könyvtár, az ellenőrzések hogyan index.html néz. És akkor mi is service.js, amely tartalmaz szolgáltatási funkciók az a komp. És itt van, hogy hová mész, hogy kitöltésével néhány a dos. Most vessünk egy pillantást a tárgyak és asszociatív tömbök JavaScript, amely minden cél és szándék cserélhető. Ha akartam, hogy egy objektum egy változó úgynevezett pálcát, azt nyilvánítja. És benne azok a kapcsos zárójelek megtenném adja meg a mag egyszarvú. A fa cseresznye. És a 13 hossza. Most már én is elérheti értékeket A használati tárgyakat asszociatív tömb jelöléssel. Tehát pálcát index mag, tudok beállítani hogy az egyenlő az egyszarvú, vagy ellenőrizze, hogy, ha kell. Vagy tudom használni a pont operátor. Wand dot fa értéke cseresznye, és így tovább, és így tovább. Tehát láthatjuk, hogy asszociatív tömbök és objektumok JavaScript lesz cserélhető, és az akarat jön a nagyon praktikus. Ekkor megjelenik egy sor épület A buildings.js. Ismét egy sor tárgyakat. Ha akartam, hogy egy sor, a legjobb épületek Harvard egyetemen, majd Azt, hogy ez a következő. Ezzel a tárgy jelöléssel, ahol a Tárolni a gyökér, név, cím, szélességi és hosszúsági minden egyetlen épületben objektumot. Menjünk gyorsan beszéljünk változókkal JavaScript. Mint a PHP, JavaScript változókat gyengén vagy gyengén típusos. Hozzon létre egy helyi változót, akkor prefix a változó nevét a V-A-R, var. Most JavaScript, funkciók körét a változók. Tehát ha van egy helyi változót belül funkciót, akkor más funkciók nem tud hozzáférni. De ellentétben a C, hurkok és a feltételek nem korlátozhatja a változó. Tehát akkor is, ha kijelenti, hogy belsejében egy állapotban, az egész funkció férhetnek hozzá. Most nem var, változó lesz a globális. Tehát, ha csak állapítsa meg a nevét és hozzá egy értéket, akkor a változó lesz egy globális változót JavaScript. Most a ház, van egy asszociatív tömb ház típusú objektum, ahol a minden ház csak egy szélességi és hosszúsági. Aztán ott van az utasok tömb, amely egy tömb objektum típusú személygépkocsik. Szóval minden utas a felhasználóneveddel, egy nevet, és egy házat. Figyeljük meg, hogy látok típus utas, ami valójában csak azt jelenti, hogy minden objektum a ugyanaz a kulcs-érték párt. Szóval minden típusú objektum utas a felhasználói nevet, egy nevet, és egy házat. Szóval mit is kell tenni a P forgatáson? Nos, meg kell, hogy a felhasználók, hogy vegye fel a személyzet tagjai, a bemutatás minden a személyzet tagjai, amelyek jelenleg a a transzfer, és vidd őket. És akkor mi is beszélünk extra funkciókat lehet végrehajtani a komp P készlet. De beszéljünk hangszedő először. Az arcok CS50 személyzet volt ültetett az egész campus, ahol minden egyes arc végre egy hely jel a 3D-s földön, és mint marker a 2D térkép. Tehát, ha a felhasználó rákattint a felvétel gombot szeretnénk hozzáadni szomszédos az utasokat, hogy a transzfer. És mi is szeretnénk, hogy távolítsa el a helyüket jelölje meg a világ, és távolítsa el a marker a térképről, jelezve, hogy ők a mi transzfer most. Szóval hogyan lehet felismerni, ha az utas hatósugarán belül tartózkodik, a transzfer? Nos, a funkció távolság - így shuttle dot távolság, átadva a szélességi és hosszúsági, majd kiszámítja a távolságot az aktuális helyzetét a transzfer a lényeg, hogy adja meg az adott adott szélességi és hosszúsági fok. Így ezt a kiszámításához távolság a transzfer a utasokat. De honnan tudod, hogy hol az utasok? Nos, ez az, ahol meg kell szerkesztéséhez populate funkciót. Töltse ki helyen az összes munkatársak és az utasok a világ, és a térképet, de nem tárolja a helyét. Így talán lehet tárolni a helyezzük jelek és jelölők Egyes globális tömbben. Most már van egy globális tömb tárolja az adatokat az utasok. Az utasok tömb tárolja minden utas nevét és házuk. Így talán akkor adjunk hozzá néhány paramétert ott az utas tárgyakat. Hogy segítsen felismerni az összes utas hatókörén belül a transzfer, nézzük loop végig az utas Az utasok tömbben. A for ciklus a JavaScript nézhet valami ehhez hasonló, nagyon hasonlít a azok a hurok C. Vagy használhatsz alternatívát hurok szerkezet. A var i in tömb, ahol továbbra is az index. De nem kell megadni a tömb dot hosszát állapot, és én plus plus. Minden utas elhelyezkedése által helyüket jelet. De a hely védjegy nem a szélességi és a hosszúsági. Van, hogy hozzáférést e paraméterek hogy a geometria, a GET geometria helyén jelet. És ha már megvan a geometria, hogy sem a szélességi vagy a hosszúság, használja ezeket a funkciókat. Tehát most már tudjuk, hogyan kell felismerni, hogy a utasok a palettáját transzfer. Ha már ezeket az utasokat, fogunk szeretne hozzáadni utasokat, amelyek e tartományon belül. Azt akarjuk, hogy lehetővé teszi számukra, hogy a komló és a foglaljon helyet a transzfer, de csak ha van elég hely a számukra. A transzfer dot ülések tömb jelzi, hogy az ülések üresek, vagy aki ebben az ülésen. Tehát, ha az ülés üres, akkor hogy az ülés null lesz. Így végighaladni az ülések tömb, ellenőrzése üres hely, tároló utasok azokba helyet, amíg meg nem nincs több üres hely. És sajnos, minden más utas meg kell várni a legközelebb a komp jön kb. Ha egyszer kap a transzfer, akkor szeretnénk hogy távolítsa el a helyüket jelet, amely az ő fotó a 3D-s világban. Ha akartam, hogy távolítsa el a helyre jelet p, akkor azt, hogy az összes funkciót az én föld, a Google Earth, és távolítsa el az adott helyen jelölje a removeChild funkciót. Majd végül, hadd vegye a marker, Az ikont a 2D-s térkép bármely az utas, hogy felvette. Eltávolításához marker, m, akkor én csak futtasd m dot setMap null. Ehhez minden utas hatótávolságon belül, és akkor már elkészült felvétel.