Files
netease-modsdk-wiki/docs/mcdocs/1-ModAPI/事件/控制.md
2025-03-17 13:24:39 +08:00

340 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sidebarDepth: 1
---
# 控制
# 索引
| 事件 | <div style="width: 3em"></div> | 描述 |
| --- | --- | --- |
| [ClientJumpButtonPressDownEvent](控制.md#clientjumpbuttonpressdownevent) | <span style="display:inline;color:#7575f9">客户端</span> | 跳跃按钮按下事件,返回值设置参数只对当次按下事件起作用 |
| [ClientJumpButtonReleaseEvent](控制.md#clientjumpbuttonreleaseevent) | <span style="display:inline;color:#7575f9">客户端</span> | 跳跃按钮按下释放事件 |
| [GetEntityByCoordEvent](控制.md#getentitybycoordevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家点击屏幕时触发,多个手指点在屏幕上时,只有第一个会触发。 |
| [GetEntityByCoordReleaseClientEvent](控制.md#getentitybycoordreleaseclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家点击屏幕后松开时触发,多个手指点在屏幕上时,只有最后一个手指松开时触发。 |
| [HoldBeforeClientEvent](控制.md#holdbeforeclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家长按屏幕即将响应到游戏内时触发。仅在移动端或pc的F11模式下触发。pc的非F11模式可以使用RightClickBeforeClientEvent事件监听鼠标右键 |
| [LeftClickBeforeClientEvent](控制.md#leftclickbeforeclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家按下鼠标左键时触发。仅在pc的普通控制模式即非F11模式下触发。 |
| [LeftClickReleaseClientEvent](控制.md#leftclickreleaseclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家松开鼠标左键时触发。仅在pc的普通控制模式即非F11模式下触发。 |
| [OnBackButtonReleaseClientEvent](控制.md#onbackbuttonreleaseclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 返回按钮(目前特指安卓系统导航中的返回按钮)松开时触发 |
| [OnClientPlayerStartMove](控制.md#onclientplayerstartmove) | <span style="display:inline;color:#7575f9">客户端</span> | 移动按钮按下触发事件,在按住一个方向键的同时,去按另外一个方向键,不会触发第二次 |
| [OnClientPlayerStopMove](控制.md#onclientplayerstopmove) | <span style="display:inline;color:#7575f9">客户端</span> | 移动按钮按下释放时触发事件,同时按下多个方向键,需要释放所有的方向键才会触发事件 |
| [OnKeyPressInGame](控制.md#onkeypressingame) | <span style="display:inline;color:#7575f9">客户端</span> | 按键按下或按键释放时触发 |
| [RightClickBeforeClientEvent](控制.md#rightclickbeforeclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家按下鼠标右键时触发。仅在pc下触发普通控制模式及F11模式都会触发。 |
| [RightClickReleaseClientEvent](控制.md#rightclickreleaseclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家松开鼠标右键时触发。仅在pc的普通控制模式即非F11模式下触发。在F11下右键按下会触发RightClickBeforeClientEvent松开时会触发TapOrHoldReleaseClientEvent |
| [TapBeforeClientEvent](控制.md#tapbeforeclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家点击屏幕并松手即将响应到游戏内时触发。仅在移动端或pc的F11模式下触发。pc的非F11模式可以使用LeftClickBeforeClientEvent事件监听鼠标左键 |
| [TapOrHoldReleaseClientEvent](控制.md#taporholdreleaseclientevent) | <span style="display:inline;color:#7575f9">客户端</span> | 玩家点击屏幕后松手时触发。仅在移动端或pc的F11模式下触发。pc的非F11模式可以使用LeftClickReleaseClientEvent与RightClickReleaseClientEvent事件监听鼠标松开 |
# 控制
## ClientJumpButtonPressDownEvent
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
跳跃按钮按下事件,返回值设置参数只对当次按下事件起作用
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| continueJump | bool | 设置是否执行跳跃逻辑 |
- 返回值
## ClientJumpButtonReleaseEvent
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
跳跃按钮按下释放事件
- 参数
- 返回值
## GetEntityByCoordEvent
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
玩家点击屏幕时触发,多个手指点在屏幕上时,只有第一个会触发。
- 参数
- 返回值
## GetEntityByCoordReleaseClientEvent
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
玩家点击屏幕后松开时触发,多个手指点在屏幕上时,只有最后一个手指松开时触发。
- 参数
- 返回值
## HoldBeforeClientEvent
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
玩家长按屏幕即将响应到游戏内时触发。仅在移动端或pc的F11模式下触发。pc的非F11模式可以使用RightClickBeforeClientEvent事件监听鼠标右键
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| cancel | bool | 设置为True可拦截原版的挖方块/使用物品/与实体交互响应 |
- 返回值
- 备注
- 玩家长按屏幕的处理顺序为:
1. 玩家点击屏幕在长按判定时间内默认为400毫秒可通过SetHoldTimeThreshold接口修改一直没有进行拖动或松手
2. 触发该事件
3. 若事件没有cancel则根据主手上的物品准心处的物体类型以及与玩家的距离进行挖方块/使用物品/与实体交互等操作
即该事件只会在到达长按判定时间的瞬间触发一次后面一直按住不会连续触发可以使用TapOrHoldReleaseClientEvent监听长按后松手
- 与TapBeforeClientEvent事件类似被ui层捕获没有穿透到世界的点击不会触发该事件
## LeftClickBeforeClientEvent
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
玩家按下鼠标左键时触发。仅在pc的普通控制模式即非F11模式下触发。
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| cancel | bool | 设置为True可拦截原版的挖方块或攻击响应 |
- 返回值
## LeftClickReleaseClientEvent
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
玩家松开鼠标左键时触发。仅在pc的普通控制模式即非F11模式下触发。
- 参数
- 返回值
## OnBackButtonReleaseClientEvent
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
返回按钮(目前特指安卓系统导航中的返回按钮)松开时触发
- 参数
- 返回值
- 备注
- 目前仅安卓平台可用
## OnClientPlayerStartMove
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
移动按钮按下触发事件,在按住一个方向键的同时,去按另外一个方向键,不会触发第二次
- 参数
- 返回值
## OnClientPlayerStopMove
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
移动按钮按下释放时触发事件,同时按下多个方向键,需要释放所有的方向键才会触发事件
- 参数
- 返回值
## OnKeyPressInGame
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
按键按下或按键释放时触发
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| screenName | str | 当前screenName |
| key | str | 键码这里的int型被转成了str型比如"1"对应的就是枚举值文档中的1详见[KeyBoardType枚举](../枚举值/KeyBoardType.md)| |
| isDown | str | 是否按下按下为1弹起为0 |
- 返回值
## RightClickBeforeClientEvent
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
玩家按下鼠标右键时触发。仅在pc下触发普通控制模式及F11模式都会触发
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| cancel | bool | 设置为True可拦截原版的物品使用/实体交互响应 |
- 返回值
## RightClickReleaseClientEvent
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
玩家松开鼠标右键时触发。仅在pc的普通控制模式即非F11模式下触发。在F11下右键按下会触发RightClickBeforeClientEvent松开时会触发TapOrHoldReleaseClientEvent
- 参数
- 返回值
- 备注
- pc的普通控制模式下的鼠标点击流程见[TapOrHoldReleaseClientEvent](#taporholdreleaseclientevent)备注中的配图
## TapBeforeClientEvent
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
玩家点击屏幕并松手即将响应到游戏内时触发。仅在移动端或pc的F11模式下触发。pc的非F11模式可以使用LeftClickBeforeClientEvent事件监听鼠标左键
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| cancel | bool | 设置为True可拦截原版的攻击或放置响应 |
- 返回值
- 备注
- 玩家点击屏幕的处理顺序为:
1. 玩家点击屏幕没有进行拖动并在短按判定时间250毫秒内松手
2. 触发该事件
3. 若事件没有cancel则根据准心处的物体类型以及与玩家的距离进行攻击或放置等操作
- 与GetEntityByCoordEvent事件不同的是被ui层捕获没有穿透到世界的点击不会触发该事件例如
1. 点击原版的移动/跳跃等按钮,
2. 通过SetIsHud(0)屏蔽了游戏操作
3. 对按钮使用AddTouchEventHandler接口时isSwallow参数设置为True
## TapOrHoldReleaseClientEvent
<span style="display:inline;color:#7575f9">客户端</span>
- 描述
玩家点击屏幕后松手时触发。仅在移动端或pc的F11模式下触发。pc的非F11模式可以使用LeftClickReleaseClientEvent与RightClickReleaseClientEvent事件监听鼠标松开
- 参数
- 返回值
- 备注
- 短按及长按后松手都会触发该事件
- 移动端及pc的F11模式下点触流程见下图
![点触说明](../picture/pe_touch_event.png)