>> [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.