> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Arcade Buttons

> Arcade Buttons

# Arcade Buttons

街机按钮允许以街机机柜的风格排列一组 6 或 8 个按钮，呈弧形布局。最常用于格斗游戏。

## 属性

`type` - "arcadeButtons"\
`lightKick` - *object*。轻踢按钮。\
`mediumKick` - *object*。中踢按钮。\
`heavyKick` - *object*。重踢按钮。\
`specialKick` - *object*，*可选*。特殊踢按钮。\
`lightPunch` - *object*。轻拳按钮。\
`mediumPunch` - *object*。中拳按钮。\
`heavyPunch` - *object*。重拳按钮。\
`specialPunch` - *object*，*可选*。特殊拳按钮。

上述每个对象都用以下属性描述一个按钮：

`action` - *string*。玩家触摸按钮时要调用的[操作](https://devdocs.xbox.com/zh-CN/reference/system/touchadaptationkit/types/game-streaming-touch-action)。

`enabled` - *boolean*，*可选*。默认为 `true`。将控件的可视状态设置为启用/禁用。禁用的控件仍会接收玩家的输入，但不会根据输入更改其可视样式。

`toggle` - *boolean*，*可选*。默认为 `false`。

* 若为 `false`，按下按钮时发送输入，不按时不发送。
* 若为 `true`，每次按下按钮都会切换是否发送对应操作的输入。

`visible` - *boolean*，*可选*。默认为 `true`。确定该控件是否显示给玩家进行交互。要在游戏过程中更改，请参阅[使用游戏状态更改触控布局](https://devdocs.xbox.com/zh-CN/build/core-features/common/game-streaming/building-touch-layouts/game-streaming-touch-changing-layouts-game-state.md#change_state)。

`styles` - *object*，*可选*。控件视觉表示的自定义。样式表示为每个可样式化状态对应的一个对象。

按钮控件可以为以下状态设置样式：

* `default` - 基本样式。
* `disabled` - 控件被禁用时的样式。如果未指定，控件被禁用时将对默认样式应用一个变换以使其显得已禁用。
* `idle` - 玩家未与控件交互时应用。
* `activated` - 玩家触摸按钮时应用。

**每个状态的样式属性**

`opacity` - *number*，*可选*。应用于控件的不透明度。除 `disabled` 外的所有状态默认为 1.0。

`faceImage` - *object*，*可选*。可以是[图标](https://devdocs.xbox.com/zh-CN/reference/system/touchadaptationkit/types/game-streaming-touch-icon)或[图像资源](https://devdocs.xbox.com/zh-CN/reference/system/touchadaptationkit/types/game-streaming-touch-asset)。

`background` - *object*，*可选*。可以是[颜色](https://devdocs.xbox.com/zh-CN/reference/system/touchadaptationkit/types/game-streaming-touch-color)或[图像资源](https://devdocs.xbox.com/zh-CN/reference/system/touchadaptationkit/types/game-streaming-touch-asset)。在 idle 和 disabled 状态下不可见。

**资源尺寸**

对于接受图像资源的每个样式对象，给定的资源必须以五个 DPI 级别提供：@1.0x、@1.5x、@2.0x、@3.0x 和 @4.0x。给定 DPI 级别的图像分辨率必须小于或等于以下最大分辨率：

| 对象 | @1.0x | @1.5x | @2.0x | @3.0x | @4.0x |
| :- | :- | :- | :- | :- | :- |
| faceImage | 60x60 | 90x90 | 120x120 | 180x180 | 240x240 |
| background | 60x60 | 90x90 | 120x120 | 180x180 | 240x240 |

## 备注

`arcadebuttons` 允许你将一组按钮排列成六个或八个按钮的组合，类似于街机机柜。这已针对格斗游戏进行了优化。

还有一个供玩家按下的指示器，映射为一起按下所有的拳或踢按钮。

`arcadebuttons` 会占用较多空间，你需要谨慎处理放置在其周围的其他控件。

**样式备注**

处于 `activated` 状态时，`faceImage` 显示为小 25%。

对于不使用自定义资源、并且仅有单一操作 `gamepadX`、`gamepadY`、`gamepadA` 或 `gamepadB` 的按钮，其背景色具有标签和默认样式。

## 示例

#### 示例 1：街机按钮 - 六个按钮

**图 1. 街机按钮**

![用户与六个街机按钮交互](https://mintcdn.com/microsoft-4404708b/-_0FrcE2bDxzGxv-/images/gdk/reference/game-streaming-touch-control-images-arcade-buttons.gif?s=3948ffe961d90e894fb1362b8fb21b13)

```JSON theme={null}
{
    "type": "arcadeButtons",
    "lightPunch": {
        "action": "gamepadX",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "lightPunch"
                }
            }
        }
    },
    "mediumPunch": {
        "action": "gamepadY",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "mediumPunch"
                }
            }
        }
    },
    "heavyPunch": {
        "action": "rightBumper",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "heavyPunch"
                }
            }
        }
    },
    "lightKick": {
        "action": "gamepadA",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "lightKick"
                }
            }
        }
    },
    "mediumKick": {
        "action": "gamepadB",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "mediumKick"
                }
            }
        }
    },
    "heavyKick": {
        "action": "leftBumper",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "heavyKick"
                }
            }
        }
    }
}
```

#### 示例 2：街机按钮 - 八个按钮

**图 1. 八个项目的街机按钮**

![用户与八个街机按钮交互](https://mintcdn.com/microsoft-4404708b/-_0FrcE2bDxzGxv-/images/gdk/reference/game-streaming-touch-control-images-arcade-buttons-eight.gif?s=6d1fe0f55cebd57f9ffd2205dcdff25d)

```JSON theme={null}
{
    "type": "arcadeButtons",
    "lightPunch": {
        "action": "gamepadX",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "lightPunch"
                }
            }
        }
    },
    "mediumPunch": {
        "action": "gamepadY",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "mediumPunch"
                }
            }
        }
    },
    "heavyPunch": {
        "action": "rightBumper",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "heavyPunch"
                }
            }
        }
    },
    "specialPunch": {
        "action": "rightTrigger",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "heavyPunch2"
                }
            }
        }
    },
    "lightKick": {
        "action": "gamepadA",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "lightKick"
                }
            }
        }
    },
    "mediumKick": {
        "action": "gamepadB",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "mediumKick"
                }
            }
        }
    },
    "heavyKick": {
        "action": "rightTrigger",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "heavyKick"
                }
            }
        }
    },
    "specialKick": {
        "action": "leftBumper",
        "styles": {
            "default" : {
                "faceImage" : {
                    "type": "icon",
                    "value": "heavyKick2"
                }
            }
        }
    }
}
```

## 要求

**布局版本：** 1.0+（样式功能自布局版本 3.0+ 起可用）


## Related topics

- [Touch Adaptation Kit](https://devdocs.xbox.com/reference/system/touchadaptationkit/touchadaptationkit-reference.md)
- [Touch Adaptation Kit (TAK) Reference](https://devdocs.xbox.com/build/core-features/common/game-streaming/game-streaming-touch-touch-adaptation-kit-overview.md)
- [触控适配布局的自定义资产](https://devdocs.xbox.com/zh-CN/build/core-features/common/game-streaming/building-touch-layouts/game-streaming-tak-custom-assets.md)
- [GameInputArcadeStickButtons](https://devdocs.xbox.com/reference/input/gameinput/enums/gameinputarcadestickbuttons.md)
