>> [Predvaja glasba]
>> SPEAKER 1: No, tukaj smo, Zadnji sklop P v CS50.
Sami čestitam iz ob prišli tako daleč, ker vaš prvi pozdravi
svetove in tiskanje piramide za Mario.
Ste naredili spletno stran, prejšnji teden.
In gremo se, da bi še enega ta teden, tisti, ki vam omogoča, da
voziti okoli Harvard kampusu, nabiranje up uslužbenci CS50 in
jih prinaša nazaj v njihovo stanovanjske hiše.
>> Zdaj prejšnji teden smo delali v PHP, side jezik strežnika.
Za ta P set, se bova uvedli za JavaScript, ki je
Stranka side jezik.
Tako da je lahko pogled na nekatere distribucija kodo, ki je predvideno za
ste za to P set.
>> V mapi JavaScript, da bo je kup JavaScript datotek.
Tam je buildings.js, ki vsebuje Niz stavb okoli Harvardu
kampus, s svojimi podatki in položaj.
Houses.js je niz Harvardu stanovanjske hiše, z njihovimi
zemljepisne širine in dolžine.
Passengers.js vsebuje Niz potnikov -
Člani osebja CS50 -
da boste prinaša nazaj njihove stanovanjske hiše.
>> Math3D.js, ki vsebuje veliko funkcije, da ima opravka z gibanjem.
Če ste matematično misleče, potem Pozdravljam ste vzeli pogled.
Vendar vam ni treba razumeti vse, kar je tam notri.
Shuttle.js, ki se ukvarja z Gibanje raketoplana je.
In index.html je domača stran, kjer vse, kar se dogaja, res, kjer
Uporabnik je v interakciji s pomočjo spletne strani.
>> Service.css je CSS slogi, ki poleg Twitter
Bootstrap knjižnica, nadzor index.html kako izgleda.
In potem imamo tudi service.js, ki vsebuje funkcije za storitve
shuttle.
In tukaj je, kam greš, da se izpolnite nekaj za dos.
>> Zdaj pa si oglejte na objektih in asociativne nize v JavaScriptu,
ki je za vse namene sta medsebojno zamenljiva.
Če bi želel, da bi nek predmet spremenljivko imenovana palica, bi
ga razglasi.
In znotraj teh zavitih oklepajih želim opredeliti jedro je samorog.
Les je češnja.
In dolžina je 13.
>> Zdaj lahko dostopate tudi vrednote objektov z
asociativno paleto zapis.
Torej palica indeks jedro, lahko nastavite , ki je enaka Samorog, ali
preveri, če moram.
Ali lahko uporabite operator pika.
Wand dot les enaka češnja, in tako naprej, in tako naprej.
Torej vidite, da asociativne nize in predmeti v JavaScriptu se bodo
zamenljivi, in volja pride v zelo priročno.
>> Potem bomo videli niz stavb V buildings.js.
Spet paleto predmetov.
Če bi želel, da bi paleto najboljših zgradbe na harvardski univerzi, nato
I bi ga takole.
Z uporabo tega objekta zapis, kjer Shranjujem root, ime, naslov,
zemljepisne širine in dolžine za vsak stavbi objekt.
>> Pojdimo hitro govoriti o spremenljivkah v JavaScript.
Kot so PHP, JavaScript spremenljivke so slabo ali ohlapno vnesli.
Če želite ustvariti lokalno spremenljivko, boste predpono Ime spremenljivke z V-A-R, var.
>> Zdaj v JavaScript, bo funkcije omejiti obseg spremenljivk.
Torej, če imate lokalno spremenljivko v funkcijo, potem druge funkcije
ni dostopen.
Toda za razliko od C, zank in pogoji ne omejiti obseg spremenljivke.
>> Torej, tudi če ste ga razglasi notranjost bolezni, bo celotna funkcija
imajo dostop do njega.
Sedaj brez var, spremenljivka bo globalno.
Torej, če ste le razglasi ime in dodeli vrednost, nato pa, da spremenljivka
bo globalno spremenljivko v JavaScript.
>> Zdaj v hišah imamo asociativno array objektov tipa hiše, kjer
vsaka hiša je le širina in dolžine.
Potem imamo potnike matrika, ki je matrika
tipa objekta potnika.
Torej vsak potnik ima ime, Ime in house.
Opazimo, da vidim tipa Potnik, ki v resnici pomeni le
da ima vsak objekt Enako par ključev vrednost.
Torej vsak objekt tipa potnika ima uporabniško ime, ime in house.
>> Torej, kaj moramo storiti za P nizu?
No, moramo omogočiti uporabnikom, da izberete do članov osebja, za prikaz vseh
člani osebja, ki so trenutno v naša shuttle, in jih odložite.
In potem bomo govorili tudi o dodatnih funkcije, ki se lahko izvajajo za
P set shuttle.
>> Toda, kaj je govoril o pickup prva.
Obrazi CS50 osebje, so bile posajene povsod kampusa, kjer je vsak
Obraz se izvaja kot mesto znamke na 3D zemlji, in kot
marker na 2D zemljevidu.
Torej, ko uporabnik klikne pickup gumb, želimo dodati v bližini
potniki na raketoplana.
In tudi mi želimo, da se odstranijo svoje mesto označi od sveta, in odstranite njihovo
marker na zemljevidu, ki kaže, da oni so v naši shuttle zdaj.
>> Torej, kako bomo odkriti, če potniki v dosegu naših shuttle?
No, oddaljenost funkcija -
tako shuttle pika na daljavo, ki poteka v zemljepisne širine in dolžine, bo
izračun razdalje od toka Stališče shuttle
točko, ki ste jo določili s tem zaradi širine in dolžine.
Torej, lahko uporabite to za izračun oddaljenost od raketoplana, da
potniki.
>> Ampak kako veš, kje potniki so?
No, to je, če bomo morali uredite funkcijo zapolnijo.
Zapolnijo krajih po članov osebja in potniki v svetu,
in v karti, vendar pa ne shranite svoje mesto.
Torej, morda lahko shranite svoje postaviti oznake in markerji
na nek globalni array.
>> Sedaj že obstaja globalna matrika shranjevanje podatkov od potnikov.
Potniki zaporedji shrani vsako Ime sovoznikov in njihova hiša.
Tako da morda lahko dodate nekaj parametrov tam do osebnih predmetov.
>> Da bi nam pomagali odkriti vse potnike v razponu od naše shuttle, dajva
zanke skozi vse potnikov v matriki potnikov.
Za zanke v JavaScript lahko ogledate kaj takega, zelo podoben
tistih, za zanko C. Ali lahko uporabimo alternativa za zanke strukturo.
>> Za var i v matriki, kjer sem bo še vedno kazalo.
Vendar vam ni treba navesti Dolžina niz dot
stanje, in jaz plus plus.
Lokacija Vsak potnik je dati svoje mesto znamko.
>> Ampak kraj znamka ni zemljepisne širine in dolžine.
Moramo priti do teh parametrov, ki jih pridobivanje geometrijo, z uporabo get
geometrijo na mesto znamke.
In potem, ko smo geometrijo, dobili niti zemljepisne širine ali
dolžine, z uporabo teh funkcij.
>> Torej, zdaj vemo, kako ugotoviti, ali Potniki so v
Paleto naših shuttle.
Ko imamo tiste potnike, se bomo želite dodati potnike, ki so
na tem območju.
Želimo, da se jim omogoči, da hop na in usedite na naši shuttle, ampak samo
če imamo dovolj prostora za njih.
>> Shuttle dot sedeži matrika bo navesti, ali so sedeži prazna, ali
kdo je v tem sedežu.
Torej, če je sedež prazen, potem ta sedež bo nič.
Torej ponovitev čez sedežev matrike, preverjanje praznih sedežev, shranjevanje
potniki v teh sedežev, dokler ne nimam več praznih sedežev.
In na žalost, vsi drugi potniki bodo morali počakati
Naslednjič, ko shuttle pride okoli.
>> Ko pridejo na raketoplana, bomo želeli da se odstranijo svoje mesto znamko, ki
je njihova fotografija v 3D svetu.
Če bi želel odstraniti kraj znamke p, potem bi dobili vse funkcije
iz moje zemlje, iz Google Earth, in nato odstranite, da v določenem kraju
označiti s funkcijo removeChild.
Potem pa na koncu, kaj je odstraniti marker, ikona na 2D zemljevidu za katerokoli
Potnik, ki smo jih pobral.
Če želite odstraniti marker, M, potem bom samo izvršitev m dot setMap null.
Ali to za vse potnike, ki so v dosegu, in ste končali pickup.