本文是Microsoft的Web Dev系列的一部分。感謝您支持使SitietPoint成為可能的合作夥伴。 網絡上的遊戲已經有了HTML5技術(例如Canvas,webGL和Webaudio)的很長一段路。現在可以在瀏覽器中產生高保真圖形和聲音。但是,要提供真正的遊戲體驗,您需要為遊戲設計的輸入設備。 GamePad API是W3C的建議標準,旨在在瀏覽器之間提供一致的API。 > GamePad API允許用戶將Xbox Controller(例如Xbox Controller)等設備連接到計算機,並將其用於基於瀏覽器的體驗!如果您有遊戲板,請嘗試將其插入計算機,然後按下按鈕。您會在下面看到Xbox控制器,以鏡像您製作的每個動作!
>在這裡進行交互嘗試。>
本教程是Flight Arcade系列中的第三個教程 - 構建,以演示Web平台以及新的Microsoft Edge瀏覽器和EdgeHTML渲染引擎中的可能性。您可以在FlightArcade.com上找到有關WebGL和Web API的前兩篇文章,以及本文的交互式代碼和示例。 [YouTube XYAQ9TPMXRA]靈活的API
。
標準控制器映射有兩個棍子,每個棍子由2個軸(x和y)表示。它還包括一個D-pad,4個遊戲按鈕,頂部按鈕和触發器:在GamePad API中均表示為按鈕。
> 當前Xbox控制器報告按鈕狀態為0(正常狀態)或1(按下)。但是,您可以想像將來的控制器可以報告每個按鈕施加的力量。Xbox D-Pad還報告了離散值(0或1),但是棒可在整個軸範圍內提供連續值[-1 .. 1]。這種額外的精度使我們更容易在我們的飛行街機任務中駕駛飛機。
>> pxgamepad
GamePad API提供的按鈕和軸的數組是前瞻性思維,並且是低級API的完美思維。但是,在編寫遊戲時,很高興能像Xbox One Controller這樣的標準遊戲手柄較高級別的代表。我們創建了一個名為PXGAMEPAD的幫助人類,該類將按鈕和軸索引映射到Xbox Controller上標記的更熟悉的名稱。標準遊戲板API提供按鈕狀態作為按鈕數組。同樣,該API設計用於靈活性,允許具有各種按鈕計數的控制器。但是,在編寫遊戲時,使用標準映射按鈕名稱的編寫和讀取代碼要容易得多。
> PXGAMEPAD類包含一種更新方法,該方法將收集所有標準映射按鈕和軸的狀態。因此,確定按下左邊扳手是否與訪問布爾屬性一樣簡單:
>
標準GamePad API中的軸也作為數值數組提供。例如,以下是獲得左棒的歸一化x和y值的代碼:
:
>這是使用navigator.getGamePads()API: >
GamePad的未來 >
>令人興奮地想像新遊戲板API提供的所有可能性。現在是嘗試新的GamePad API並為您的下一個遊戲或應用程序添加很多樂趣的好時機! 與JavaScript更多動手
> GamePad API是什麼? GamePad API是一個基於Web的接口,允許開發人員訪問和響應GamePad或Controller的信號。該API旨在與任何類型的遊戲板一起使用,使其成為遊戲開發人員的多功能工具。它提供了一種直接與GamePad互動的方法,而無需通過第三方軟件或驅動程序。 > >哪些類型的gamepads與gamepad api兼容?與各種遊戲板兼容。這包括帶有按鈕和操縱桿的標準遊戲手柄,以及更專業的控制器,例如轉向輪或飛行棒。 API還可以一次處理多個遊戲手柄,允許進行多人遊戲。 > gamepad API是所有瀏覽器支持的遊戲板API嗎?是基於Web的接口,並非所有瀏覽器當前都支持它。但是,大多數現代瀏覽器,包括Chrome,Firefox和Edge,都支持GamePad API。在開始開發之前,最好檢查當前對API的瀏覽器支持。 可以將GamePad API用於手機遊戲嗎? >如何測試GamePad API?可以通過將GamePad連接到計算機並運行使用API的遊戲來測試GamePad API。然後,您可以在遊戲板上按下按鈕,看看是否在遊戲中觸發了相應的操作。
HTML5 GAMEPAD API的另一個限制是不提供按鈕級別事件。遊戲開發人員想要激活按鈕按下的單個事件是很常見的。在Flight Arcade中,點火和製動按鈕是一個很好的例子。 PXGAMEPAD手錶按鈕狀態,並允許呼叫者在發布按鈕上註冊通知。
有兩種檢索遊戲闆對象的方法。 GamePad API將方法添加到名為GetGamePads()的Navigator對象,該對象返回所有連接的遊戲板的數組。每當新的GamePad連接或斷開連接時,還會有新的GamePadconneconnecon和GamePaddisconstisconneconness事件。例如,這是PXGAMEPAD助手如何存儲最後一個連接的GamePad:
> PXGAMEPAD助手類是針對單個用戶使用標準映射遊戲板的遊戲設計的簡單場景。最新的瀏覽器(例如Microsoft Edge)完全支持W3C GampePad API。但是,其他一些瀏覽器的較舊版本僅支持新興規範的部分。 PXGAMEPAD聆聽遊戲板連接的事件,並在需要時回到查詢所有GamePad的列表。
> PXGAMEPAD專注於簡單,最常見的情況,但GamePad API完全有能力支持多個玩家,每個玩家都有自己的遊戲板。 PXGAMEPAD的一種可能改進可能是提供一個經理風格的類,該類別跟踪多個遊戲板的連接並將它們映射到遊戲中的多個玩家。另一個可能是允許用戶重新啟動或自定義遊戲板上的按鈕函數。
>在開發飛行街機期間,我們經常使用攪拌機和其他3D工具來處理Babylon.js的模型。一些開發人員和藝術家使用稱為3D鼠標的設備來幫助操縱和導航3D型號。這些設備跟踪單個旋鈕穿過六個軸的運動!它們使操縱模型變得非常容易快捷。除遊戲外,它們還用於從工程到醫學成像的各種有趣的應用中。在為飛行街機上添加GamePad支持時,我們驚訝地發現GamePad API檢測到了我們的3D空間,並為所有六個軸提供了移動數據!
2015年Microsoft Edge Web峰會(Microsoft Edge Web Summit)(新瀏覽器,新的Web平台功能和社區的嘉賓演講者的期望完整系列)>
的問題
遊戲板API如何工作?
gamePad API通過檢測遊戲板的輸入並將其轉換為遊戲中的動作來工作。它通過聆聽特定事件(例如按鈕按下或操縱桿的動作)來實現此目的,然後觸發遊戲中相應的動作。這允許更具身臨其境和互動的遊戲體驗。 >我如何在自己的遊戲中使用GamePad API? 在您自己的遊戲中使用GamePad API,您將需要包括它在您的遊戲代碼中。這涉及調用API的功能並聆聽其生成的事件。然後,您可以使用這些事件來控制遊戲的各個方面,例如字符運動或菜單導航。
>我可以將GamePad API與其他API一起使用嗎?創建更複雜的遊戲。例如,您可以使用GamePad API來控制角色運動,而使用另一個API處理遊戲物理或圖形。
>>開發人員使用GamePad API時會面臨哪些常見問題? GamePad API包括檢測正確的遊戲板,處理多個遊戲板以及處理不同的按鈕佈局。這些問題通常可以通過仔細閱讀API文檔並徹底測試遊戲來解決這些問題。
,而GamePad API主要設計用於用於使用桌面瀏覽器,也可以用於手機遊戲。但是,這需要一個與移動設備兼容的遊戲板,並且用戶體驗可能不如桌面遊戲那麼光滑。
>我在哪裡可以了解有關GamePad API的更多信息?這包括官方的API文檔,以及各種遊戲開發網站上的教程和指南。您還可以找到使用API在行動中看到它的遊戲示例。
以上是GamePad API的真正游戲體驗的詳細內容。更多資訊請關注PHP中文網其他相關文章!