成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

給你的網(wǎng)頁(yè)游戲添加游戲手柄支持

stdying / 4379人閱讀

摘要:自從買(mǎi)了手柄后一直想試試給自己寫(xiě)的小游戲增加手柄支持。表示該對(duì)象所表示的手柄是否還保持連接。。連接事件瀏覽器提供了兩個(gè)手柄相關(guān)的事件。。完筆者給自己的貪食蛇小游戲增加了手柄搖桿控制蛇頭方向功能之前筆者還寫(xiě)過(guò)俄羅斯方塊之類(lèi)的,代碼找不到了

自從買(mǎi)了 Switch 手柄后一直想試試給自己寫(xiě)的小游戲增加手柄支持。今天終于抽出時(shí)間搞了一把。以下是筆記 ;)

navigator.getGamepads

HTML5 中獲取游戲手柄的 API 是 navigator.getGamepads()。navigator.getGamepads 會(huì)返回一個(gè)可能包含 null 的數(shù)組。標(biāo)準(zhǔn)規(guī)定,對(duì)于同一個(gè)游戲手柄會(huì)在同一個(gè)下標(biāo)中返回,不同的手柄必須不能使用其他手柄用過(guò)的下標(biāo)——即便前者已經(jīng)中斷連接。如果沒(méi)有檢測(cè)到任何游戲手柄,實(shí)測(cè)在 Firefox 中會(huì)返回一個(gè)空數(shù)組,而在 Chrome、Safari 中會(huì)返回 [null, null, null, null]。

當(dāng)瀏覽器檢測(cè)到手柄后,navigator.getGamepads 就會(huì)返回包含該手柄對(duì)象的數(shù)組,每一個(gè)手柄對(duì)象都是 Gamepad 類(lèi)型

實(shí)測(cè)筆者的 NS Pro 手柄在 Chrome、Safari 瀏覽器上有兼容性問(wèn)題(不能識(shí)別左搖桿),所以下面測(cè)試均以 Firefox 為準(zhǔn)(Edge 也正常)。同事表示他的 PS4 手柄沒(méi)有問(wèn)題。

Gamepad 類(lèi)

Gamepad 類(lèi)包含重要的屬性,這里只介紹最重要的幾個(gè):

id。字符串,包含了手柄驅(qū)動(dòng)的名稱(chēng)信息。比如筆者的 NS Pro 返回的是 57e-2009-Pro Controller,可以用此字符串識(shí)別用戶(hù)的手柄提供默認(rèn)的按鍵映射。

connected。表示該 Gamepad 對(duì)象所表示的手柄是否還保持連接。

timestamp。手柄對(duì)象的最后更新時(shí)間。實(shí)測(cè)筆者雖然沒(méi)有動(dòng)手柄,這個(gè)值仍然在不斷增長(zhǎng)(可能是搖桿的數(shù)值在微小變化的緣故),用處不是很大。

mapping。表示瀏覽器是否可以識(shí)別手柄的布局。當(dāng)前瀏覽器只能識(shí)別 類(lèi)似 PS4 手柄的標(biāo)準(zhǔn)布局。如果能識(shí)別,返回 standard,否則返回空字符串(筆者的 NS Pro 識(shí)別不了)。

axes。這個(gè)值表示手柄的搖桿的軸(一個(gè)搖桿有X、Y兩個(gè)軸)。其所有值都在 -1~1 之間。HTML使用向右、向下的坐標(biāo)系,所以正值表示右或上,負(fù)值表示左或下。標(biāo)準(zhǔn)規(guī)定,同一個(gè)搖桿的X、Y方向值必須相鄰,且先X后Y。標(biāo)準(zhǔn)同時(shí)建議,如果有多個(gè)搖桿同時(shí)存在,主搖桿應(yīng)該排在前面。所以如果有有左右兩個(gè)搖桿,axes 返回的數(shù)組值應(yīng)該表示:[左搖桿的X軸偏向, 左搖桿的Y軸偏向, 右搖桿的X軸偏向, 右搖桿的Y軸偏向]

buttons。這個(gè)值是一個(gè) GamepadButton 對(duì)象數(shù)組。標(biāo)準(zhǔn)建議數(shù)組的順序應(yīng)該按照主要按鍵優(yōu)先排列。實(shí)測(cè)對(duì)于我的 NS Pro 手柄來(lái)說(shuō)順序是 [B, A, Y, X, L, R ...],而方向鍵排在最后四個(gè)。建議實(shí)際應(yīng)用中給用戶(hù)提供專(zhuān)門(mén)的界面映射按鍵。

GamepadButton 類(lèi)

每一個(gè) GamepadButton 實(shí)例表示手柄上的一個(gè)按鍵(包括方向鍵),它包含三個(gè)屬性(MDN 上只寫(xiě)了兩個(gè),實(shí)際按照標(biāo)準(zhǔn)返回了全部三個(gè)):

pressed。布爾值,表示當(dāng)前按鍵是否被按下。

value。表示按鍵的深度(完全按下還是按到一半),值為 0~1 之間。大多數(shù)按鍵不支持壓力感應(yīng),會(huì)直接返回0或1

touched。如果手柄支持觸摸,該值可表示當(dāng)前按鍵被觸摸但是沒(méi)有按下的狀態(tài)。如果不支持觸摸,該值和 pressed 一致。

連接事件

瀏覽器提供了兩個(gè)手柄相關(guān)的事件。

gamepadconnected。當(dāng)瀏覽器檢測(cè)到手柄連接時(shí)觸發(fā)。回調(diào)函數(shù)的事件參數(shù)中包含 gamepad 屬性,用戶(hù)獲得新連接的手柄對(duì)象

gampaddisconnected。當(dāng)瀏覽器檢測(cè)到手柄失去連接時(shí)觸發(fā)。

可以看到手柄沒(méi)有類(lèi)似鍵盤(pán)鼠標(biāo)那樣的 keydown、keyup 等事件,如需獲取手柄的按鍵狀態(tài),需要在 raf 循環(huán)中使用 navigator.getGamepads 實(shí)時(shí)獲取。

筆者給自己的貪食蛇小游戲增加了手柄搖桿控制蛇頭方向功能:https://github.com/CarterLi/S...

之前筆者還寫(xiě)過(guò)俄羅斯方塊之類(lèi)的,代碼找不到了/(ㄒoㄒ)/~~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/94528.html

相關(guān)文章

  • 日本什么主機(jī)好-買(mǎi)什么游戲主機(jī)好?

    摘要:買(mǎi)什么游戲主機(jī)好距離上篇游戲主機(jī)選購(gòu)?fù)耆改弦呀?jīng)有了快兩年的時(shí)間,在這個(gè)不長(zhǎng)不短的時(shí)間里,游戲主機(jī)市場(chǎng)也出現(xiàn)了一些十分有趣的變化,索尼和微軟齊頭并進(jìn),先后發(fā)布了和,讓成了去年游戲領(lǐng)域的關(guān)鍵詞,完成了半個(gè)世代的更迭。想組裝一臺(tái)電腦,用迷你主機(jī)好還是用大主機(jī)好?一定先玩明確自己的使用要求。而不是先考慮哪種電腦好。迷你電腦優(yōu)點(diǎn)太多了,小巧美觀不占地方,日常應(yīng)用足夠,高清電影一般游戲辦公商務(wù)都可滿(mǎn)足...

    everfly 評(píng)論0 收藏0
  • 商城用什么主機(jī)-買(mǎi)什么游戲主機(jī)好?

    摘要:買(mǎi)什么游戲主機(jī)好距離上篇游戲主機(jī)選購(gòu)?fù)耆改弦呀?jīng)有了快兩年的時(shí)間,在這個(gè)不長(zhǎng)不短的時(shí)間里,游戲主機(jī)市場(chǎng)也出現(xiàn)了一些十分有趣的變化,索尼和微軟齊頭并進(jìn),先后發(fā)布了和,讓成了去年游戲領(lǐng)域的關(guān)鍵詞,完成了半個(gè)世代的更迭。買(mǎi)什么游戲主機(jī)好?距離上篇 《游戲主機(jī)選購(gòu)?fù)耆改稀?已經(jīng)有了快兩年的時(shí)間,在這個(gè)不長(zhǎng)不短的時(shí)間里,游戲主機(jī)市場(chǎng)也出現(xiàn)了一些十分有趣的變化,索尼和微軟齊頭并進(jìn),先后發(fā)布了 PS4 ...

    figofuture 評(píng)論0 收藏0
  • 游戲掛機(jī)用什么云主機(jī)-請(qǐng)問(wèn)云服務(wù)器可以托管掛機(jī)游戲嗎?

    摘要:請(qǐng)問(wèn)云服務(wù)器可以托管掛機(jī)游戲嗎如果是想在云主機(jī)上玩游戲的話(huà),由于云主機(jī)沒(méi)有網(wǎng)卡,所以無(wú)法加載大型游戲,不過(guò)可以玩一些網(wǎng)頁(yè)游戲。請(qǐng)問(wèn)云服務(wù)器可以托管掛機(jī)游戲嗎?如果是想在云主機(jī)上玩游戲的話(huà),由于云主機(jī)沒(méi)有網(wǎng)卡,所以無(wú)法加載大型游戲,不過(guò)可以玩一些網(wǎng)頁(yè)游戲。如果主機(jī)提供商的物理機(jī)支持GPU透?jìng)鞴δ?,將物理機(jī)GPU透?jìng)鞯皆浦鳈C(jī)上,這樣云主機(jī)就有了物理機(jī)的GPU功能,有了3D渲染和高清解碼的功能,玩...

    xorpay 評(píng)論0 收藏0
  • WebVR開(kāi)發(fā)教程——交互事件(一)頭顯與手柄

    摘要:交互事件交互根據(jù)自由度可分為和,顯然,所有的頭顯都應(yīng)支持方向的追蹤。交互事件除了,現(xiàn)在大部分還搭配,用戶(hù)通過(guò)手持手柄可以與虛擬場(chǎng)景進(jìn)行交互。 showImg(https://segmentfault.com/img/remote/1460000011813767?w=880&h=471); 前兩期主要介紹了開(kāi)發(fā)WebVR應(yīng)用的基本套路,不過(guò)開(kāi)發(fā)出來(lái)的場(chǎng)景還只是可遠(yuǎn)觀而不可褻玩,缺乏交互...

    harriszh 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<