Преглед изворни кода

html5 gamepad (#159)

* update physics

* update input

* update

* update code sharing in getting-help.md

* Export Compliance

* update on file i/o

* pi / 4

* inputs

* forum url

* read only user

* html5 gamepad
COCO пре 4 година
родитељ
комит
2aa0551f87
2 измењених фајлова са 19 додато и 0 уклоњено
  1. 1 0
      docs/zh/manuals/html5.md
  2. 18 0
      docs/zh/manuals/input-gamepads.md

+ 1 - 0
docs/zh/manuals/html5.md

@@ -59,6 +59,7 @@ Defold 打包 HTML5 游戏很简单, 跟其他平台一样: 从菜单栏选择 <
   * Full screen - 全屏模式在浏览器中不可靠.
 * Chrome
   * Slow debug builds - 为了在 HTML5 平台更好地调试我们开启了校验所有 WebGL 图像调用来检测错误. 但是这样做在 Chrome 上会运行缓慢. 可以把 *game.project* 里的 *Engine Arguments* 部分设置为 `–-verify-graphics-calls=false` 来关闭图像调用校验.
+* 游戏手柄支持 - 对于 HTML5 平台的游戏手柄支持与配置参见[这篇教程](/manuals/input-gamepads/#gamepads-in-html5).
 
 ## 自定义HTML5打包
 

+ 18 - 0
docs/zh/manuals/input-gamepads.md

@@ -109,3 +109,21 @@ end
 这个工具通过收集连接控制器的输入自动生成映射文件. 新的映射文件可以在 "game.project" 里进行指定或者混合使用:
 
 ![Gamepad settings](images/input/gamepad_setting.png){srcset="images/input/[email protected] 2x"}
+
+## HTML5上的游戏手柄
+HTML5平台同样支持游戏手柄, 效果和原生应用一样. 游戏手柄的支持基于 [标准游戏手柄API](https://www.w3.org/TR/gamepad/), 并且受绝大多数浏览器支持 ([详见此图表](https://caniuse.com/?search=gamepad)). 万一遇到不支持的浏览器 Defold 会忽略所有游戏手柄的操作. 可以通过检查浏览器的`navigator`对象中是否存在`getGamepads`函数来判断其是否支持游戏手柄:
+
+```lua
+local function supports_gamepads()
+    return not html5 or (html5.run('typeof navigator.getGamepads === "function"') == "true")
+end
+if supports_gamepads() then
+    print("Platform supports gamepads")
+end
+```
+
+运行在 `iframe` 上的游戏要确保 `iframe` 的 `gamepad` 权限已被开启:
+
+```html
+<iframe allow="gamepad"></iframe>
+```