>> [Muzikavimo]
>> GARSIAKALBIS 1: Na, čia mes esame, paskutinis P sąvadas CS50.
Sveikinu save gražu taip toli nuo jūsų pirmasis Apie
pasauliai ir spausdinti piramidės Mario.
Jūs padarė svetainę praėjusią savaitę.
Ir mes ketiname būti padaryti dar vieną šią savaitę, vienas, kad leidžia
vairuoti aplink Harvardo universiteto, skinti iki CS50 personalo nariai,
pareikšti juos atgal į savo gyvenamieji namai.
>> Dabar praėjusią savaitę dirbome PHP programavimo kalba, server-side kalba.
Dėl šios P ​​rinkinį, mes gauti pristatė JavaScript ", kuri yra
kliento pusėje kalba.
Taigi, galime pažvelgti į kai atrodo platinimo kodą, kuris yra teikiamas į
Jūs šiuo P rinkinys.
>> Be JavaScript aplanką, ten bus būti JavaScript failų krūva.
Yra buildings.js, kuriame yra masyvas pastatų visame Harvardo
miesteliu, su savo informacija ir pareigos.
Houses.js yra Harvardo masyvas gyvenamieji namai, o jų
geografinė ilguma ir platuma.
Passengers.js yra masyvas keleivių -
su CS50 darbuotojai -
kad jums bus sugrįžus į gyvenamieji namai.
>> Math3D.js, kad yra daug daug funkcijos daryti su judėjimo.
Jei esate matematiškai bendraminčių, tada aš kviečiame Jus pažvelgti.
Tačiau jums nereikia suprasti viskas ten.
Shuttle.js, kuri susijusi su Shuttle judėjimą.
Ir index.html namų puslapiu kur viskas vyksta, tikrai, kur
vartotojas sąveikauja su svetaine.
>> Service.css yra CSS stiliaus lapo, kuris, be to, "Twitter"
Bootstrap biblioteka, valdikliai kaip index.html atrodo.
Ir tada mes taip pat turime service.js, kurios yra paslaugų funkcijas
autobusas.
Ir čia, kur jūs ketinate būti pildant kai dos.
>> Dabar galime pažvelgti objektų išvaizdą ir Association masyvai JavaScript,
kuri visais atžvilgiais yra keičiamos.
Jei aš norėjau, kad objekto kintamąjį vadinamas lazdelė, norėčiau
paskelbti ją.
Ir viduje tuos klamrowych Norėčiau nurodyti branduolys yra vienaragis.
Medienos vyšnių.
Ir ilgis 13.
>> Dabar aš taip pat galite pasiekti vertybes objektų, naudojant
masyvą žymėjimas.
Taigi lazdelė puslapis branduolys, galiu nustatyti kad lygios vienaragis, arba
patikrinti, kad jei man reikia.
Arba galiu naudoti taškinę operatorių.
Lazdelė taškas medienos Lygu vyšnių, ir tt, ir pan.
Taigi matote, kad asociatyviniai matricas ir objektai JavaScript ketinate būti
keičiamos ir valia būna gana patogu.
>> Tada matome Pastatų masyvas į buildings.js.
Vėlgi, objektų masyvo.
Jei aš norėjau padaryti iš geriausių masyvo pastatai Harvardo universiteto, tada
Norėčiau, kad jį taip.
Naudojant šį objektą žymėjimą, kur Aš laikyti root, pavadinimas, adresas,
platumos ir ilgumos už kiekvieną vienas pastatas objektas.
>> Leiskite greitai kalbėti apie kintamuosius JavaScript.
Kaip PHP, JavaScript kintamieji silpnai arba laisvai atspausdinti.
Norėdami sukurti kintamąjį, galite priešdėlis kintamojo vardas su V-A-R, var.
>> Dabar JavaScript funkcijos apriboti kintamųjų taikymo sritis.
Taigi, jei turite vietos kintamąjį per funkcija, tada kitas funkcijas
negali pasiekti.
Tačiau, skirtingai nei C, kilpos ir sąlygos ne apriboti kintamojo aprėptį.
>> Taigi, net jei jūs paskelbti jį viduje sąlyga, visa funkcija
turėti prieigą prie jo.
Dabar be var kintamasis bus pasaulio.
Taigi, jei jūs tiesiog paskelbti vardą ir priskirti vertę, tai kintamasis
bus pasaulinį kintamąjį JavaScript.
>> Dabar namuose, mes turime Association masyvas Namo tipas objektus, kur
kiekvienas namas yra tik platuma ir ilguma.
Tada mes turime keleivius masyvas, kuris yra masyvas
keleivių objektas tipo.
Taigi, kiekvienas keleivis turi vardą, pavadinimas ir namo.
Atkreipkite dėmesį, kad aš matau tipo keleivių, o tai tikrai tik tai
kad kiekvienas objektas turi pats raktas vertė pora.
Taigi, kiekvienas keleivis tipo objektas turi vartotojo vardas, pavardė, ir namas.
>> Taigi, ką mes turime padaryti P rinkinys?
Na, mes turime leisti vartotojams pasirinkti iki darbuotojų, kad būtų rodomi visi
personalo nariai, kurie šiuo metu Mūsų autobusas ir upuść juos išjungti.
Ir tada mes taip pat kalbame apie papildomą funkcijos, kurios gali būti įgyvendintos
autobusas P rinkinys.
>> Bet pakalbėkime apie pikapas pirmas.
Iš CS50 darbuotojų veidai buvo pasodinti visame miestelyje, kur kiekvienas
veidas įgyvendinama kaip vieta ženklo ant 3D žemėje, ir kaip
žymeklis 2D žemėlapyje.
Taigi, kai vartotojas paspaudžia pikapas mygtuką, mes norime pridėti netoliese
keleiviai į uostą.
Ir mes taip pat norite pašalinti savo vietą pažymėti iš viso pasaulio, ir pašalinti jų
žymeklis iš žemėlapio, kuriame nurodoma, kad jie į mūsų uostą dabar.
>> Taigi, kaip mes nustatyti, ar keleiviai yra per daug mūsų uostą?
Na, funkcija atstumas -
taip uostą taškas atstumas, einančios platuma ir ilguma, bus
apskaičiuoti atstumą nuo dabartinės pozicija į uostą
nurodo, kad jūs nurodote su tuo atsižvelgiant platuma ir ilguma.
Taigi, galite naudoti šią apskaičiuoti atstumas nuo maršrutiniu autobusu
keleivių.
>> Bet kaip jūs žinote, kur keleiviai yra?
Na, tai kur mes turime redaguoti gyventojų funkciją.
Užpildyti sudėtos visų darbuotojų ir keleiviai į pasaulį,
ir į žemėlapį, bet ne laikyti savo buvimo vietą.
Taigi, galbūt galima laikyti jų vieta ženklus ir žymenis
kai pasaulio masyvo.
>> Dabar jau yra pasaulinė masyvas saugoti informaciją iš keleivių.
Keleiviai masyvo parduotuvėse kiekvienas keleivio vardą ir savo namuose.
Taigi gal galite įlašinti kelis parametrus ten keleivių daiktų.
>> Kad padeda mums nustatyti visus keleivius per daug mūsų uostą, tegul
kilpa per visus keleivių į keleivių masyvo.
Už kilpa JavaScript gali atrodyti kažkas panašaus į tai, labai panašus į
tiems, kilpa C. Arba mes galime naudoti alternatyva ciklo struktūrą.
>> Var i masyvas, kur aš vis dar bus indeksas.
Tačiau jums nereikia nurodyti masyvas taškas ilgis
sąlyga, ir aš plus plus.
Kiekvienas keleivis vieta yra pateiktas jų vieta ženklo.
>> Bet vieta ženklo nėra platuma ir ilguma.
Mes turime pasiekti tuos parametrus pagal gauti geometriją, naudojant get
geometrijos vieta ženklo.
Ir tada, kai mes turime geometriją, gauti arba platumos arba
ilgumos, naudojant šias funkcijas.
>> Taigi, dabar mes žinome, kaip nustatyti, ar keleiviai per
asortimentą, mūsų autobusas.
Kai mes turime tuos keleivius, mes norite pridėti keleiviai, kurie
tame areale.
Mes norime, kad jie galėtų šokinėti ant ir užimti vietą mūsų uostą, bet tik
jei turime pakankamai vietos jiems.
>> Autobusas dot sėdynės masyvas bus nurodyti, ar sėdynės yra tuščias, arba
kas toje sėdynėje.
Taigi, jei sėdynė yra tuščias, tada kad būstinė bus niekinis.
Taigi pakartoti per vietų masyve tikrinti tuščių vietų, saugoti
keleiviai į tų vietų, kol neturiu daugiau tuščių vietų.
Ir, deja, visi kiti keleiviai turės palaukti
Kitą kartą uostą ateina aplink.
>> Kai jie gauna į uostą, mes norime pašalinti savo vietą ženklą, kuris
yra jų nuotraukos 3D pasaulyje.
Jei aš norėjau išimti vieta ženklo p, tada norėčiau gauti visas funkcijas
iš mano žemės, iš Google Earth ir tada pašalinti, kad konkrečioje vietoje
pažymėti naudojant removeChild funkciją.
Tada galiausiai galime pašalinti žymeklį, ant 2D žemėlapio bet ikona
keleivių, kad mes įlaipinami.
Norėdami pašalinti marker, M, tada aš tik vykdyti m dot setMap null.
Ar tai jokių zonoje esančių keleivių, ir baigsite pikapas.