[音樂播放] 揚聲器1:嗯,我們在這裡, 在CS50最後的P組。 從有你們表示祝賀 走了這麼遠,因為你的第一聲問候 世界上並打印出來 金字塔的馬里奧。 你做了一個網站的最後一周。 而我們將要製作一個又一個 這個星期,一個可以讓你 帶動周邊​​的哈佛校園裡,採摘 高達CS50的工作人員,並 把他們回到自己的 民居。 現在,在上週,我們曾在PHP中, 服務器端語言。 對於這個P組,我們就要介紹 到JavaScript中,這是一個 客戶端語言。 因此,讓我們來看看一些 公司所提供的分銷代碼 你這個P組。 在JavaScript文件夾中,將有 是一堆JavaScript文件。 有buildings.js,它包含一個 哈佛周圍建築物的數組 校園裡,與他們的信息 和位置。 Houses.js是哈佛的數組 住宅房屋,其 經度和緯度。 Passengers.js包含一個 乘客陣列 - 在CS50的工作人員 - 你會被帶回至 他們居住的房子。 Math3D.js,它包含了很多 功能做的運動。 如果你是數學頭腦, 那麼我歡迎你來看看。 但你並不需要了解 一切都在那裡。 Shuttle.js,與交易 航天飛機的運動。 和index.html的是主頁, 一切都發生了,真的,那裡的 用戶互動的網站。 Service.css是CSS樣式表, 其中,除了Twitter的 引導程序庫,控制 如何index.html的樣子。 然後我們也有service.js,這 包含服務功能 穿梭。 下面是你要去的地方是 填寫一些到DOS。 現在讓我們來看看對象和 關聯數組在JavaScript中, 這對於所有意圖和目的 是可以互換的。 如果我想使一個對象的變量 所謂的魔杖,我會 聲明它。 和那些大括號我會內 指定核心是麒麟。 木材是櫻花。 和長度為13。 現在我也可以訪問值 使用對象 關聯數組表示法。 所以魔杖指數的核心,我可以設置 這等於麒麟,或 檢查,如果我需要。 或者,我可以使用點運算符。 魔杖點木等於櫻桃, 等等,等等。 所以你看到,關聯數組和 在JavaScript對象都將是 互換和意志 進來很方便。 然後,我們看到建築的數組 在buildings.js。 再次,對象的數組。 如果我想做出最好的一個數組 在哈佛校園的建築物,然後 我想使它成為如下。 使用此對象表示法,其中 我存儲的根,名稱,地址, 緯度,經度和每 單體建築對象。 讓我們快速談談變量 在JavaScript中。 像PHP,JavaScript變量 是弱或鬆散類型。 要創建一個局部變量,你前綴 變量名與V-A-R,變種。 現在,在JavaScript中,函數會 限制變量的範圍。 因此,如果你在有一個局部變量 一個函數,那麼其他功能 不能訪問它。 但是,與C,循環和條件不 限制變量的範圍。 所以,即使你的內聲明它 條件,整個功能將 可以訪問它。 現在還沒有變種,變 將是全球性的。 所以,如果你只需要聲明的名稱和 指定一個值,則該變量 將是一個全局變量 在JavaScript中。 現在的房子,我們有一個關聯 房子類型對象的數組,其中 每一個房子只是一個緯度 和經度。 那麼我們有乘客 陣列,它是一個數組 的對象類型的乘客。 所以,每一位乘客都有一個用戶名, 一個名字,和一所房子。 請注意,我看到的類型 乘客,這真的只是意味著 每個對象都有 同樣的鍵值對。 所以型乘用車的每一個對象都有 一個用戶名,一個名稱和一個房子。 那麼,我們需要 這樣做對於P組? 好了,我們需要允許用戶選擇 了工作人員,以顯示所有的 工作人員目前正在 我們的班車,並把它們關閉。 然後,我們也將討論額外的 給可實現的功能 穿梭P設置。 但是,讓我們來談談皮卡第一。 CS50工作人員的面孔已經 種滿校園,其中每個 臉是作為一個地方標誌 的三維地球上,作為一個 標記的2D地圖上。 因此,當用戶單擊拾取 按鈕,我們希望附近的加 乘客穿梭。 我們也想刪除自己的位置 來自世界紀念,並刪除其 標記從地圖上看,這表明 他們在我們的班車了。 那麼,我們如何檢測,如果乘客 都在我們的航天飛機範圍是多少? 當然,函數距離 - 所以班車點距離,傳遞 緯度和經度,將 計算從當前的距離 穿梭到的位置 點那個你指定 給定的緯度和經度。 所以,你可以用它來計算 距離從航天飛機到 乘客。 但你怎麼知道在哪裡 乘客是? 嗯,這就是我們必須 編輯填充功能。 填充所有地方的工作人員 和乘客走向世界, 並進入地圖,但不 存儲他們的位置。 因此,也許你可以存儲自己的 放置標記和標記 在一些全局數組。 現在已有了一個全局數組 乘客存儲信息。 每個乘客陣列存儲 乘客的姓名和他們的房子。 所以也許你可以添加一些參數 有給乘客的對象。 為了幫助我們檢測到所有的乘客 在我們穿梭範圍,讓我們 通過所有的乘客循環 在乘客陣列。 for循環在JavaScript看起來 這樣的事情,非常相似, 這些循環在C或者,我們可以使用一個 替代for循環結構。 對於數組變種我,我在那裡 將仍然是指數。 但你並不需要指定 數組長度點 狀態,我加再加。 每一個乘客的位置是 通過他們的地方得分。 但這個地方標誌是不 緯度和經度。 我們必須通過訪問這些參數 獲得的幾何形狀,使用get 幾何上的地點標記。 然後一旦我們有幾何, 讓無論是緯度或 經度,使用這些功能。 所以,現在我們知道如何檢測是否 乘客都在 我們的範圍內穿梭。 一旦我們有了這些乘客,我們將 要補充的是,任何乘客 內的範圍。 我們希望,讓他們跳,並 坐我們的班車,但只有 如果我們有足夠的空間給他們。 班車點的座位陣列將 表示座位是否是空的,或 誰在那個位子。 所以,如果一個座位是空的,那麼 那個座位將為null。 所以遍歷數組席位, 檢查空座位,存儲 乘客進入這些席位,直到你 沒有任何更多的空座位。 不幸的是,其他乘客 將必須等待 下一次航天飛機惡有惡報。 一旦他們穿梭取得聯繫,我們會想 刪除自己的位置標記,它 是他們的照片在3D世界中。 如果我想刪除一個地方標記P, 然後我會得到所有的功能 從我的地球,從谷歌地球, 然後刪除特定的地方 標記使用removeChild功能。 那麼最後,讓我們刪除標記, 在二維地圖上的任何圖標 乘客,我們正在加快。 要刪除標記,M,然後我會 只是執行米點setMap空。 這樣做有效範圍內的任何乘客, 你已經完成了皮卡。