首頁 >web前端 >js教程 >GamePad API的真正游戲體驗

GamePad API的真正游戲體驗

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌原創
2025-02-19 12:52:11945瀏覽

GamePad API的真正游戲體驗

鑰匙要點

  • gamepad API是W3C的擬議標準,在瀏覽器之間提供了一個一致的API,用於連接遊戲輸入設備,例如Xbox Controller,以用於基於瀏覽器的體驗的計算機。
  • >
  • gamepad API提供了靈活性,並提供了對具有歸一化值的按鈕和軸的訪問權限,並且GamePad對象提供了有關連接的GamePad的製造商和型號的詳細信息。
  • >
  • pxgamepad是一個輔助類,可提供更高級別的標準遊戲板,例如Xbox One Controller,將按鈕和軸索引映射到Xbox Controller上標記的熟悉名稱。
  • > GamePad API能夠通過自己的遊戲板為多個玩家提供支持,但未來的改進可能會使用戶可以在其遊戲板上重新映射或自定義按鈕功能,並且API為操縱和導航3D模型等非遊戲場景提供了潛在的潛力。

本文是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

GamePad API的真正游戲體驗gamepad API的智能設計有靈活性。在基本級別上,它提供了對按鈕和軸的訪問。按鈕值範圍為[0 .. 1],而軸範圍為[-1 .. 1]。所有值都標準化為這些範圍,因此開發人員可以期望設備之間的行為一致。 GamePad對象提供了有關連接遊戲板製造商和模型的詳細信息。更有用的是映射屬性,描述了GamePad的一般類型。當前,唯一受支持的映射是標準標準,與許多流行遊戲機(如Xbox)(例如Xbox>)使用的控制器佈局。

標準控制器映射有兩個棍子,每個棍子由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上標記的更熟悉的名稱。

>我們將瀏覽庫的一些有趣的部分,但是可以在此處提供完整的源代碼(MIT許可證):https://github.com/thinkpixellab/pxgamepad

標準遊戲板API提供按鈕狀態作為按鈕數組。同樣,該API設計用於靈活性,允許具有各種按鈕計數的控制器。但是,在編寫遊戲時,使用標準映射按鈕名稱的編寫和讀取代碼要容易得多。 > 例如,使用HTML5 GamePad API,這是檢查當前是否按下左觸發器的代碼:

> PXGAMEPAD類包含一種更新方法,該方法將收集所有標準映射按鈕和軸的狀態。因此,確定按下左邊扳手是否與訪問布爾屬性一樣簡單:

>

標準GamePad API中的

軸也作為數值數組提供。例如,以下是獲得左棒的歸一化x和y值的代碼:>

GamePad API的真正游戲體驗d-pad是一種特殊情況,因為它考慮了HTML5 GamePad API的四個按鈕(指數12、13、14和15)。但是,對於開發人員來說,允許DPAD與其中一根棍子相同的方式使用。 PXGAMEPAD為D-PAD提供了按鈕信息,但也可以將軸信息進行整理,就好像D-pad是一個棒:

GamePad API的真正游戲體驗 HTML5 GAMEPAD API的另一個限制是不提供按鈕級別事件。遊戲開發人員想要激活按鈕按下的單個事件是很常見的。在Flight Arcade中,點火和製動按鈕是一個很好的例子。 PXGAMEPAD手錶按鈕狀態,並允許呼叫者在發布按鈕上註冊通知。 >

這是由PXGAMEPAD支持的命名按鈕的完整列表:GamePad API的真正游戲體驗

a
  • b
  • x
  • y
  • >左圖
  • RightTop
  • > leftTrigger
  • righttrigger
  • 選擇
  • 開始
  • >左腳
  • > rightstick
  • dpadup
  • dpaddown
  • > dpadleft
  • dpadright
  • 獲得當前的遊戲板

有兩種檢索遊戲闆對象的方法。 GamePad API將方法添加到名為GetGamePads()的Navigator對象,該對象返回所有連接的遊戲板的數組。每當新的GamePad連接或斷開連接時,還會有新的GamePadconneconnecon和GamePaddisconstisconneconness事件。例如,這是PXGAMEPAD助手如何存儲最後一個連接的GamePad:>

>這是使用navigator.getGamePads()API:檢索第一個標準遊戲板的助手

GamePad API的真正游戲體驗> PXGAMEPAD助手類是針對單個用戶使用標準映射遊戲板的遊戲設計的簡單場景。最新的瀏覽器(例如Microsoft Edge)完全支持W3C GampePad API。但是,其他一些瀏覽器的較舊版本僅支持新興規範的部分。 PXGAMEPAD聆聽遊戲板連接的事件,並在需要時回到查詢所有GamePad的列表。

> GamePad的未來

GamePad API的真正游戲體驗> PXGAMEPAD專注於簡單,最常見的情況,但GamePad API完全有能力支持多個玩家,每個玩家都有自己的遊戲板。 PXGAMEPAD的一種可能改進可能是提供一個經理風格的類,該類別跟踪多個遊戲板的連接並將它們映射到遊戲中的多個玩家。另一個可能是允許用戶重新啟動或自定義遊戲板上的按鈕函數。

>

>我們也對遊戲手柄在非遊戲場景中的潛力感到興奮。隨著WebGL的興起,我們在網絡上看到了3D的各種創新用途。這可能意味著用冰川工程探索3D珠穆朗瑪峰地區。或歸功於Cyark為保存重要的世界遺址和人工製品的努力而觀看大英博物館的集合。

>在開發飛行街機期間,我們經常使用攪拌機和其他3D工具來處理Babylon.js的模型。一些開發人員和藝術家使用稱為3D鼠標的設備來幫助操縱和導航3D型號。這些設備跟踪單個旋鈕穿過六個軸的運動!它們使操縱模型變得非常容易快捷。除遊戲外,它們還用於從工程到醫學成像的各種有趣的應用中。在為飛行街機上添加GamePad支持時,我們驚訝地發現GamePad API檢測到了我們的3D空間,並為所有六個軸提供了移動數據!

>令人興奮地想像新遊戲板API提供的所有可能性。現在是嘗試新的GamePad API並為您的下一個遊戲或應用程序添加很多樂趣的好時機!

>

與JavaScript更多動手

Microsoft在許多開源JavaScript主題上擁有大量免費學習,我們的任務是使用Microsoft Edge創建更多的東西。這裡有一些要退房:

2015年Microsoft Edge Web峰會(Microsoft Edge Web Summit)(新瀏覽器,新的Web平台功能和社區的嘉賓演講者的期望完整系列)

>構建// build/and Windows 10(包括用於網站和應用的新JavaScript引擎)
    >
  • >不打破網絡的javascript(克里斯蒂安·海爾曼(Christian Heilmann)最近的主題演講)
  • 託管的Web應用程序和Web平台創新(對諸如歧管之類的主題的深入研究)
  • 實用的性能提示,使您的HTML/JavaScript更快(從響應式設計到休閒遊戲再到性能優化的7部分系列)
  • >現代Web平台Jumpstart(HTML,CSS和JS的基本原理)
  • >
  • 和一些免費的工具要入門:Visual Studio代碼,Azure試用和跨瀏覽器測試工具 - 所有這些都可用於Mac,Linux或Windows。
  • 本文是Microsoft的Web Dev技術系列的一部分。我們很高興與您共享Microsoft Edge和新的EdgeHTML渲染引擎。在您的Mac,iOS,Android或Windows Device @ Modern.ie中獲取免費的虛擬機或遠程測試
  • 經常詢問有關GamePad API
的問題

> GamePad API是什麼?

GamePad API是一個基於Web的接口,允許開發人員訪問和響應GamePad或Controller的信號。該API旨在與任何類型的遊戲板一起使用,使其成為遊戲開發人員的多功能工具。它提供了一種直接與GamePad互動的方法,而無需通過第三方軟件或驅動程序。 >

遊戲板API如何工作?

gamePad API通過檢測遊戲板的輸入並將其轉換為遊戲中的動作來工作。它通過聆聽特定事件(例如按鈕按下或操縱桿的動作)來實現此目的,然後觸發遊戲中相應的動作。這允許更具身臨其境和互動的遊戲體驗。

>我如何在自己的遊戲中使用GamePad API?

在您自己的遊戲中使用GamePad API,您將需要包括它在您的遊戲代碼中。這涉及調用API的功能並聆聽其生成的事件。然後,您可以使用這些事件來控制遊戲的各個方面,例如字符運動或菜單導航。

>

>哪些類型的gamepads與gamepad api兼容?與各種遊戲板兼容。這包括帶有按鈕和操縱桿的標準遊戲手柄,以及更專業的控制器,例如轉向輪或飛行棒。 API還可以一次處理多個遊戲手柄,允許進行多人遊戲。

我可以將GamePad API與其他API一起使用嗎?創建更複雜的遊戲。例如,您可以使用GamePad API來控制角色運動,而使用另一個API處理遊戲物理或圖形。

>

> gamepad API是所有瀏覽器支持的遊戲板API嗎?是基於Web的接口,並非所有瀏覽器當前都支持它。但是,大多數現代瀏覽器,包括Chrome,Firefox和Edge,都支持GamePad API。在開始開發之前,最好檢查當前對API的瀏覽器支持。

>

>開發人員使用GamePad API時會面臨哪些常見問題? GamePad API包括檢測正確的遊戲板,處理多個遊戲板以及處理不同的按鈕佈局。這些問題通常可以通過仔細閱讀API文檔並徹底測試遊戲來解決這些問題。

可以將GamePad API用於手機遊戲嗎?

,而GamePad API主要設計用於用於使用桌面瀏覽器,也可以用於手機遊戲。但是,這需要一個與移動設備兼容的遊戲板,並且用戶體驗可能不如桌面遊戲那麼光滑。

>

>如何測試GamePad API?可以通過將GamePad連接到計算機並運行使用API​​的遊戲來測試GamePad API。然後,您可以在遊戲板上按下按鈕,看看是否在遊戲中觸發了相應的操作。

>

我在哪裡可以了解有關GamePad API的更多信息?這包括官方的API文檔,以及各種遊戲開發網站上的教程和指南。您還可以找到使用API​​在行動中看到它的遊戲示例。 >

以上是GamePad API的真正游戲體驗的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn