[CHWARAE CERDDORIAETH] SIARADWR 1: Wel, dyma ni, P set olaf yn CS50. Llongyfarch eich hunain o gael dod mor bell ers eich helo cyntaf bydoedd ac argraffu pyramidiau ar gyfer Mario. Gwnaethoch wefan yr wythnos diwethaf. Ac rydym yn mynd i fod yn gwneud un arall yr wythnos hon, un sy'n eich galluogi i gyrru o gwmpas y campws Harvard, casglu i fyny aelodau o staff CS50, a dod â nhw yn ôl i'w tai preswyl. Nawr wythnos diwethaf buom yn gweithio mewn PHP, iaith ochr y gweinydd. Am y P set, rydym yn cael eu cyflwyno i JavaScript, sydd yn iaith ochr y cleient. Felly, gadewch i ni edrych ar rai o'r cod dosbarthu sy'n cael ei darparu i i chi am y P penodol. Yn y ffolder JavaScript, bydd yna fod yn griw o ffeiliau JavaScript. Mae buildings.js, sy'n cynnwys amrywiaeth o adeiladau o gwmpas Harvard campws, gyda'u gwybodaeth a sefyllfa. Houses.js yn amrywiaeth o Harvard tai preswyl, gyda'u lledredau a hydredau. Passengers.js yn cynnwys amrywiaeth o deithwyr - aelodau o staff CS50 - y byddwch yn dod yn ôl i eu tai preswyl. Math3D.js, sy'n cynnwys llawer o swyddogaethau sy'n ymwneud â mudiad. Os ydych yn meddwl yn fathemategol, yna rwy'n croeso i chi gymryd golwg. Ond nid oes angen i chi ddeall popeth i mewn 'na. Shuttle.js, sy'n delio â symudiad y gwennol yn. Ac index.html yw'r dudalen cartref lle popeth yn digwydd, mewn gwirionedd, lle mae'r defnyddiwr yn rhyngweithio â'r safle. Service.css yw'r daflen arddull CSS, sydd, yn ychwanegol at y Twitter Llyfrgell bootstrap, rheolaethau sut yn edrych index.html. Ac yna mae gennym hefyd service.js, a oedd yn yn cynnwys swyddogaethau gwasanaeth ar gyfer y gwennol. A dyma ei ble rydych yn mynd i fod lenwi yn rhai o'r i dos. Nawr, gadewch i ni edrych ar wrthrychau a araeau cysylltiadol yn JavaScript, sydd, am bob pwrpas yn ymgyfnewidiol. Os wyf yn awyddus i wneud gwrthrych newidyn a elwir yn ffon, byddwn ddatgan ei. Ac y tu mewn braces cyrliog hynny Hoffwn nodi'r craidd yn unicorn. Mae'r coed yn ceirios. A hyd yn 13. Nawr gall Rwyf hefyd yn cael mynediad gwerthoedd o wrthrychau gan ddefnyddio nodiant amrywiaeth cysylltiadol. Craidd mynegai Felly ffon, gallaf osod sy'n gyfartal i unicorn, neu gwirio bod, os oes angen. Neu gallaf ddefnyddio'r gweithredwr dot. Ffon dot pren hafal ceirios, ac yn y blaen, ac yn y blaen. Felly, byddwch yn gweld bod araeau cysylltiadol a gwrthrychau mewn JavaScript yn mynd i fod gyfnewidiol, a bydd yn dod i mewn yn eithaf 'n hylaw. Yna, rydym yn gweld amrywiaeth o adeiladau mewn buildings.js. Unwaith eto, mae amrywiaeth o wrthrychau. Os wyf yn awyddus i wneud amrywiaeth o'r gorau adeiladau ar y campws Harvard, ac yna Byddwn yn ei gwneud yn fel a ganlyn. Gan ddefnyddio hyn nodiant gwrthrych, lle I storio y gwreiddyn, enw, cyfeiriad, lledred, hydred a ar gyfer pob gwrthrych un adeilad. Gadewch i ni yn gyflym siarad am newidynnau yn JavaScript. Fel PHP, newidynnau JavaScript yn cael eu teipio wan neu'n llac. I greu newidyn lleol, rydych rhagddodiad yr enw newidyn gyda V-A-R, var. Nawr yn JavaScript, bydd swyddogaethau cyfyngu ar gwmpas newidynnau. Felly os oes gennych newidyn lleol o fewn swyddogaeth, yna swyddogaethau eraill Ni all gael gafael arno. Ond yn wahanol i C, ni dolenni ac amodau yn ei wneud cyfyngu ar gwmpas newidyn. Felly, hyd yn oed os ydych yn ei ddatgan tu mewn i cyflwr, y swyddogaeth gyfan yn cael mynediad iddo. Nawr heb var, y newidyn yn fyd-eang. Felly, os ydych yn unig yn datgan enw a briodoli gwerth, yna newidyn Bydd yn newidyn byd-eang yn JavaScript. Nawr mewn tai, mae gennym cysylltiadol amrywiaeth o wrthrychau math o dŷ, lle y pob tŷ yn unig yw lledred a hydred. Yna, mae gennym y teithwyr array, sydd yn arae o'r math gwrthrych teithwyr. Felly mae pob teithiwr yn cael enw defnyddiwr, enw, a thŷ. Sylwch fod fy mod yn gweld o'r math teithwyr, sydd mewn gwirionedd yn unig yn golygu bod pob gwrthrych gan y un pâr gwerth allweddol. Felly, pob gwrthrych o fath teithwyr wedi enw defnyddiwr, enw, a thŷ. Felly, beth sydd angen i ni wneud ar gyfer y P set? Wel, mae angen i alluogi defnyddwyr i ddewis i fyny o aelodau staff, i arddangos pob un o'r yr aelodau o staff sydd ar hyn o bryd yn ein gwennol, ac i ollwng i ffwrdd. Ac yna byddwn hefyd yn siarad am ychwanegol nodweddion y gellir eu rhoi ar waith ar gyfer y wennol P a osodwyd. Ond gadewch i ni siarad am pickup yn gyntaf. Wynebau staff CS50 wedi bod yn plannu ar hyd a lled y campws, lle mae pob wyneb yn cael ei weithredu fel marc lle ar y ddaear 3D, ac fel marcio ar y map 2D. Felly, pan fydd y defnyddiwr yn clicio y pickup botwm, rydym am ychwanegu gerllaw teithwyr i'r gwennol. Ac rydym hefyd yn awyddus i dynnu eu lle nodi oddi wrth y byd, a chael gwared ar eu marciwr o'r map, sy'n dangos bod eu bod yn ein gwennol nawr. Felly, sut ydym yn canfod os deithwyr o fewn ystod o o'n gwennol? Wel, y pellter swyddogaeth - felly gwennol dot o bell, gan fynd yn y lledred a hydred, bydd cyfrifwch y pellter oddi wrth y presennol lleoliad y gwennol i'r pwyntio eich bod yn nodi â hynny rhoi lledred a hydred. Felly, gallwch ddefnyddio hwn i gyfrifo pellter oddi wrth y gwennol i'r teithwyr. Ond sut ydych chi'n gwybod ble y teithwyr yn? Wel, dyna lle bydd rhaid i ni olygu'r swyddogaeth boblogi. Boblogi lleoedd holl aelodau'r staff a theithwyr i mewn i'r byd, ac i mewn i'r map, ond nid yw'n storio eu lleoliad. Felly, efallai y gallwch storio eu rhoi marciau a marcwyr mewn rhai amrywiaeth byd-eang. Erbyn hyn mae yna eisoes amrywiaeth byd-eang storio gwybodaeth o deithwyr. Mae'r siopau teithwyr amrywiaeth pob enw teithwyr a'u tŷ. Felly, efallai y gallwch ychwanegu ychydig o baramedrau yno i'r gwrthrychau teithwyr. I'n helpu ni i ganfod yr holl deithwyr o fewn yr ystod o ein gwennol, gadewch i ni dolen drwy bob un o'r teithwyr yn yr arae teithwyr. Gallai A am ddolen yn JavaScript edrych rhywbeth fel hyn, yn debyg iawn i rhai ar gyfer dolen yn C. Neu gallwn ddefnyddio amgen ar gyfer strwythur ddolen. Er i var mewn amrywiaeth, lle yr wyf yn yn dal i fod y mynegai. Ond nid oes angen i chi nodi yr amrywiaeth dot hyd cyflwr, a fi yn ogystal a mwy. Leoliad pob teithiwr yn a roddir gan eu marc lle. Ond nid y marc lle yn y lledred a hydred y. Mae'n rhaid i ni gael mynediad paramedrau hynny drwy cael y geometreg, gan ddefnyddio get geometreg ar y marc lle. Ac yna ar ôl i ni gael y geometreg, cael naill ai'r lledred neu'r hydred, gan ddefnyddio swyddogaethau hynny. Felly nawr rydym yn gwybod sut i ganfod a yw teithwyr o fewn ystod ein gwennol. Unwaith y byddwn wedi teithwyr hynny, rydym yn annhymerus ' eisiau ychwanegu unrhyw deithwyr sy'n o fewn yr ystod. Rydym yn awyddus i ganiatáu iddynt neidio ar, a gymryd sedd ar ein gwennol, ond dim ond os oes gennym ddigon o le ar eu cyfer. Mae'r amrywiaeth seddi gwennol dot yn nodi a seddi yn wag, neu pwy sydd yn y sedd honno. Felly, os yw sedd yn wag, yna Bydd y sedd honno yn null. Felly ailadrodd dros y rhesi o seddi, gwirio am seddi gwag, storio teithwyr i seddi hynny hyd nes y byddwch Nid oes rhaid i unrhyw seddi mwy wag. Ac yn anffodus, unrhyw deithwyr eraill Bydd yn rhaid i aros am y tro nesaf y wennol yn dod o gwmpas. Unwaith y maent yn ei gael ar y gwennol, byddwn yn eisiau i gael gwared ar eu marc ar waith, sy'n yw eu llun yn y byd 3D. Os wyf yn awyddus i ddileu marc lle p, yna byddwn yn cael yr holl o'r nodweddion gan fy ddaear, o Google Earth, ac yna tynnwch y lle penodol nodi ddefnyddio'r swyddogaeth removeChild. Yna yn olaf, gadewch i ni gael gwared ar y marciwr, yr eicon ar y map 2D ar gyfer unrhyw teithwyr ein bod yn codi i fyny. I gael gwared ar arwydd, m, yna 'n annhymerus' dim ond gweithredu m dot null setMap. Gwnewch hyn ar gyfer unrhyw deithwyr o fewn yr ystod, a ydych wedi gorffen pickup.