Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

TouchControllerWiki

欢迎来到新 TouchControllerWiki!

这里是 TouchController 的官方维基,我们欢迎任何形式的贡献!

The official wiki for TouchController, welcomes contributions in any form.

Warning

本 Wiki 采用 CC BY-SA 4.0 许可协议,这意味着您在复制、分发、传播、修改、编辑、翻译、引用、汇编、整合、转载、嵌入本 Wiki 内容时,必须注明原作者及来源;若创作衍生作品,则需继续沿用 CC BY-SA 4.0 协议发布。

This Wiki is licensed under the CC BY-SA 4.0 license. This means that you must provide appropriate credit and the source when copying, distributing, sharing, modifying, editing, translating, quoting, compiling, integrating, republishing, or embedding content from this Wiki. If you create derivative works, you must distribute them under the same CC BY-SA 4.0 license.

TouchController 简介

TouchController 是一个 Minecraft 模组,能够为 Java 版(Minecraft: Java Edition)带来像基岩版(Minecraft: Bedrock Edition)那样的触控,并且拥有高度自定义的控件布局和其他配置,还有一些基岩版所没有的原创控件,来带给您更好的触控体验。

官方地址

关于我们

TouchController 从入门到精通

支持版本

参见 #4

  • 1.12.2 (Forge)
  • 1.16.5 (Forge, Fabric)
  • 1.20.1 (Forge, Fabric)
  • 1.20.4 (Forge, NeoForge, Fabric)
  • 1.20.6 (Forge, NeoForge, Fabric)
  • 1.21 (Forge, NeoForge, Fabric)
  • 1.21.1 (Forge, NeoForge, Fabric)
  • 1.21.3 (Forge, NeoForge, Fabric)
  • 1.21.4 (Forge, NeoForge, Fabric)
  • 1.21.5 (Forge, NeoForge, Fabric)
  • 1.21.6 (Forge, NeoForge, Fabric)
  • 1.21.7 (Forge, NeoForge, Fabric)
  • 1.21.8 (Forge, NeoForge, Fabric)

支持平台

下载

Important

请务必注意您的游戏版本和 mod 加载器,不要下载错误的版本。

请务必注意您使用的平台、游戏版本以及加载器是否支持 TouchController。

使用启动器下载

  1. 在模组安装页面中搜索 TouchController。
  2. 根据启动器的提示,根据安装到的 Minecraft 版本和 mod 加载器,寻找对应的最新版 TouchController。如果使用了 Fabric 版本,还需要安装 Fabric API,不过大部分启动器可以选择在安装游戏版本时一并安装 Fabric API,此时无需重复安装。
  3. Fabric 版本还可以选择安装 模组菜单(Mod Menu) 这样可以更方便地进入设置页面。

从网站下载

网址

安装

  1. 找到 mod 文件夹,一般在 .minecraft/mods,如果开启了版本隔离,mod 文件夹就在 .minecraft/versions/<游戏版本名称>/mods
  2. 将下载的 TouchController 模组文件放进去,如果使用了 Fabric 版本,还需要安装 Fabric API。

游玩

目前 GUI 控件功能仍在开发中,关闭物品栏、呼出游戏菜单等 Escape 按键的功能可以由 Android 系统中的返回所替代。

隐藏启动器的控件

大部分启动器都有控件编辑功能,您可以删除启动器自带的控件。以 FCL 为例,您只需要新建一个空布局,删除原布局后进入游戏,便可以看到启动器自带的控件已被删除。

设置界面

您可以通过多种方法进入 TouchController 的设置界面。关于如何设置,请参考设置界面及其子页面。

通过模组菜单

  • 打开模组菜单。如果使用 Fabric 加载器,需要安装模组菜单,不过 Forge 自带模组菜单。
  • 在模组菜单中找到 TouchController,便可以进入设置页面。

通过游戏菜单

  • 打开游戏菜单 -> 选项 -> 按键控制 -> 触摸设置
  • 一些版本进入方式可能有些许不同,但差别不会太大。

控件样式

概念

  • 图集是对控件风格的分类,TouchController 目前拥有四种图集。
  • 图标指的是控件中的图案,同样功能的控件可能有不同的图标;不同功能的控件一定有不同的图标,这些图标表达的含义也不相同。

图集

经典

  • 英文名称:classic
  • 描述:基岩版旧版贴图
  • 经典图集是基岩版早期使用的贴图,也包括一些 TouchController 美术组补充的贴图,例如虚拟摇杆、疾跑、攻击、使用等等

新样式

  • 英文名称:new
  • 描述:基岩版新版贴图
  • 新样式图集是基岩版目前正在使用的贴图,风格比较扁平化

经典扩展

  • 英文名称:classic_extension
  • 描述:新版图标和旧版控件背景
  • 此图集全部贴图均由 TouchController 美术组绘制,但 TouchController 原创控件以及一些基岩版原版经典贴图所没有的控件贴图不在其中

新样式回归

  • 英文名称:new_regression
  • 描述:旧版图标和新版控件背景
  • 此图集全部贴图均由 TouchController 美术组绘制,但 TouchController 原创控件以及一些基岩版原版经典贴图所没有的控件贴图不在其中

选择喜欢的布局

TouchController 拥有两种自定义布局模式,一种是预设模式,一种是自定义模式。预设模式只能切换一些选项,而自定义模式拥有极高的自由度,同时也更为复杂。

TouchController 会默认启用预设模式,也就是管理预设,此时进入自定义模式会出现一个弹窗,可以在弹窗中切换到自定义模式。此时进入预设模式会出现一个弹窗,可以在弹窗中切换到预设模式。

预设模式选项:

贴图风格

  • 类型:单选列表
  • 选项:
    • 旧版贴图
    • 旧版图标和新版控件背景
    • 新版贴图
    • 新版图标和旧版控件背景
  • 参见控件样式

不透明度

  • 类型:滑杆
  • 默认值:60%
  • 这个选项用来调整所有控件的不透明度,但物品栏按钮不受此选项影响。

大小

  • 类型:滑杆
  • 默认值:100
  • 这个选项用来调整所有控件的大小,但物品栏按钮不受此选项影响。

控制方式

  • 类型:单选列表
  • 选项:
    • 点击屏幕交互
    • 使用准星瞄准
  • 即:是否启用“分离控制”

通过按钮攻击与交互

  • 类型:选项
  • 前置:控制方式为“使用准星瞄准”
  • 默认值:启用
  • 启用后将关闭触摸手势,仅使用按钮攻击与交互。

移动方式

  • 类型:单选列表
  • 选项:
    • 方向键
    • 摇杆
  • 此选项会导致下方选项产生一些差异

使用摇杆疾跑

  • 类型:选项
  • 前置:移动方式为“摇杆”
  • 默认值:禁用
  • 摇杆推到 110% 后触发疾跑。

交换跳跃与潜行

  • 类型:选项
  • 前置:
    • 禁用“通过按钮攻击与交互”
    • 移动方式为“方向键”
  • 默认值:禁用

疾跑按键

  • 类型:下拉菜单
  • 选项:
    • 右上角
    • 右侧

使用原版聊天界面

  • 类型:选项
  • 默认值:禁用
  • 控制聊天按钮是否打开 TouchController 的聊天界面

自定义布局

预设系统

在 v0.1.x 版本之前,预设系统只能做到保存与读取,不能进行编辑,与目前使用的布局相独立。但经过 v0.2.1 更新后,预设系统有了新的机制,可以做到不同布局之间的快捷切换,并且可以直接进行修改。

  • 对布局的编辑必须使用一个预设,所有的编辑都在一个预设中进行。
  • TouchController 拥有一些内置预设,可以在创建预设时选择,或在预设模式下使用。
  • 预设目前拥有三项设置:分离控制、触摸手势、隐藏准星。
  • 您可以在预设列表中排序、复制预设,或进行重命名、修改设置等。

图层系统

图层系统来自 #123 以及相关的各种 issue,其用途是在不同的情况下显示不同的控件,例如飞行、划船时。

  • 每个图层都可以配置显示条件,如果多个图层同时满足条件会叠加图层。
  • TouchController 的控件必须在图层中创建。

图层编辑

是一个子页面,可以编辑图层名称和图层条件。可以在右侧的标签页中将图层条件添加到图层中,目前有三个标签页:

  • 预置条件:TouchController v0.2.1-beta11 及以前仅可用这种预置条件,详细说明见下方。
  • 手持物品:类似物品列表的默认物品表,点击一个物品可以添加手持此物品的条件。
  • 自定义条件:参见自定义图层条件

条件状态

每个条件拥有以下几种状态:

  • 永不:条件满足时不显示图层
  • 包含:条件满足时显示图层
  • 必要:所有“必要”条件满足时显示图层

预置条件

  • 游泳中:玩家触碰到水
  • 潜水中:玩家被水淹没
  • 飞行中:玩家在飞行
  • 允许飞行:玩家拥有飞行的能力
  • 潜行中:玩家正在潜行
  • 疾跑中:玩家正在冲刺
  • 在地上:玩家触碰地面
  • 不在地上:玩家没有触碰地面
  • 使用物品中:玩家正在使用物品
  • 在矿车上:玩家坐在矿车中
  • 在船上:玩家坐在船上
  • 在猪上:玩家正在骑猪
  • 在马上:玩家正在骑马
  • 在骆驼上:玩家正在骑骆驼
  • 在羊驼上:玩家正在骑羊驼
  • 在炽足兽上:玩家正在骑炽足兽
  • 乘坐在实体上:玩家处于骑乘状态
  • 选中方块:没有触控圈的情况下,准星对准方块(即使准星隐藏)。或者触控圈选中方块

自定义图层条件

自定义图层条件是为了通过自定义控件控制图层而设计的,自定义图层条件与预设绑定,不同预设中的自定义图层条件不会互相干扰。

可以在图层编辑页面编辑自定义图层条件,如添加、重命名和删除。添加的自定义图层条件将显示在同预设所有图层的自定义条件页面中。

内置控件

TouchController 的内置控件主要是基于自定义控件实现的,但也有一些控件无法通过标准自定义控件实现,它们有一些不同于自定义控件的设置。通过自定义控件实现的内置控件在此不再赘述(您可以直接查看其属性以了解其特性),我们主要介绍无法通过标准自定义控件实现的内置控件:

方向键

方向键除了可以调整大小、调整图集外,还可以有以下设置:

  • 显示左后和右后按键:是否显示左后和右后的斜向按键贴图
  • 边距:方向键各个按钮之间的间距
  • 中心按钮(游戏内名称:附加按钮):中心按钮可以独立调整大小、激活贴图,并且包含无、普通、滑动无锁定、滑动锁定四种类型:
    • 无:不显示中心按钮
    • 普通:操作与普通控件拥有相同的设置
    • 滑动无锁定:手指滑过中心按钮后触发,操作与普通控件拥有相同的设置
    • 滑动锁定:手指滑过中心按钮后触发一次,操作只能设为绑定键位

虚拟摇杆

虚拟摇杆除了可以修改图集外,还可以分别调整背景和手柄的大小,同时拥有两个选项:

  • 触发疾跑:摇杆推到 110% 后触发疾跑
  • 激活时提高不透明度:手指移动摇杆时,摇杆提高不透明度

划船按钮

划船按钮较为特殊,就像坦克一样,按住左边的按钮可以右转,按住右边的按钮可以左转,按住两个按钮可以同时前进。

划船按钮除了可以调整大小、调整图集外,还可以设置当前按钮为左侧按钮或右侧按钮。

自定义控件

TouchController 几乎所有的控件都是基于同一个自定义架构实现的,这也表明了TouchController 的自定义控件拥有的极高自由度。在自定义控件布局中的控件标签页中,有一个“内置控件”和一个“模板控件”。您可以在“内置控件”中添加控件,在此基础上修改后保存到“模板控件”中,然后在其他页面中使用,下文将详细的描述自定义控件的方法。

外观

您一共可以为一个控件配置两种外观,分别是正常状态下和激活状态下,您也可以选择激活后不改变贴图或贴图变灰。特别地,文本和文本颜色的配置不能随着控件的激活状态而改变。除此之外,以下几种属性都可以随着控件的激活状态而改变:

  • 填充:在这个模式下,您可以使用颜色填充控件,也可以为其设置边框:边框宽度和边框颜色。这个模式下的控件大小会随着文本长度而改变,您可以为文本设置边距:上、下、左、右。
  • 固定贴图:在这个模式下,您可以将控件设置为 TouchController 所拥有的任何控件贴图(甚至包括摇杆手柄和摇杆背景)。在此模式下,您还可以调整控件缩放,最高为400%。
  • 自适应贴图:在这个模式下,您可以选择一些控件的背景作为自定义控件的背景。这个模式下的控件大小会随着文本长度而改变,您可以为文本设置边距:上、下、左、右。

动作

大部分操作都可以有四种选择:无、键位、玩家操作、游戏操作。

  • 无:不做任何操作
  • 键位:执行 Minecraft “按键绑定”中某个条目的操作,但并非发送键值。在此模式下可以选择触发后锁定,锁定后相当于持续激活这个键位。锁定类型有三种:开始、停止、和反转。顾名思义,“开始”就是触发操作后开始锁定这个控件;“停止”就是触发操作后停止锁定这个控件;“反转”就是触发操作后反转锁定状态。当然,您也可以选择不锁定,此时可以使用一个选项“保持一个客户端刻”,如果遇到某些时候操作按键无效,请启用这个选项。
  • 玩家操作:触发玩家的某个操作:如停止飞行、开始疾跑、停止疾跑
  • 游戏操作:触发某个游戏操作:如打开游戏菜单、打开聊天界面等
  • 图层条件:切换、启用、禁用某自定义图层条件

触发

  • 按压:手指按下控件的瞬间触发,这个操作可以有上述四种选择。
  • 按下:手指按下控件后持续触发,这个操作只能绑定键位(具体见上)。
  • 松开:手指按下控件后松开的瞬间触发,这个操作可以有上述四种选择。
  • 双击:手指双击控件后的瞬间触发,并且可以设置两次点击控件的判定间隔,这个操作可以有上述四种选择。

锚点机制

锚点机制旨在适配不同大小的屏幕,使得控件布局在任何设备上都可用。

  • 锚点共有 9 种,分别为屏幕四角、屏幕四边的中心、屏幕中心。
  • 无论画面边框如何变化,控件相对其锚点的位置始终不变。

静默转头

这个机制起源于 #148#153,其主要内容是 TouchController 无法在正确的地方进行一些交互,其典型例子便是放水。

众所周知,只要不开启分离控制,那么您点击屏幕的位置便是交互的位置。但是在手持水桶放置时,点击屏幕后水却放置在准星所对准的位置,就像基岩版中的末影珍珠一样。这是因为 Minecraft 的服务端(其实单人游戏也有一个内置服务端)没有使用 TouchController 提供的目标,为什么不使用呢?

我们先讲一下 Minecraft 寻找目标的机制,Minecraft 的默认机制是在客户端处理的,所以 TouchController 可以通过修改客户端直接给服务器提供正确的目标。但是这个默认机制会忽略掉流体,因此这种机制下流体永远不能成为目标,那我们岂不是不能装水、不能放船了?所以 Minecraft 为一些物品启用了一个特殊的机制,这个机制能正确地判定目标,但是这个机制会在客户端和服务端同时判定,这就导致了服务端不再接收来自客户端的目标,而是根据玩家的实际朝向来确认目标。

为了解决这个问题,TouchController 加入了静默转头的机制,并且可以在“需要修正使用方向的物品”中配置。通过这个机制,您甚至可以完成一些基岩版中做不到的操作。在基岩版中,使用末影珍珠会向准星方向扔出。但是如果您在 TouchController 中将末影珍珠加入这个物品表,您就可以实现“指哪打哪”的末影珍珠。

机制

不使用分离控制,当手持“需要修正使用方向的物品”中的物品时,点击屏幕进行交互后 TouchController 会进行转头,使准星对准点击的方向、交互、然后再恢复原位。这一切都在一帧之内完成,这样您的客户端或其他玩家的客户端都不会渲染您的转头动作。

文本输入适配

TouchController 能够在您选中输入框(注:目前仅限于 TouchController 的 GUI,将在未来支持原版 GUI)时自动弹出触摸键盘。还能让弹出键盘时输入框移动到键盘顶部,在输入时为输入法提供文本框中的内容,就像在其他应用程序中那样。

Windows 系统

Tip

Windows 系统中仅实现了自动弹出键盘。

在 Windows 系统中,弹出键盘存在诸多条件。首先,Windows 需要能识别到触摸屏。此外,还需要在设置中启用相关功能。以Windows 11 为例,您需要打开设置,找到时间和语言 -> 输入,展开触摸键盘选项,将显示触摸键盘设为未连接键盘时始终。此时,找到一个输入框,选中它,触摸键盘应该能自动弹出。在游戏内,触摸键盘也会以同样的方式弹出。

Linux 系统

TouchController 在 Wayland 下实现了 text_input_v3 协议,在输入法获得焦点时会由合成器决定是否弹出键盘。

Android 系统

Important

Android 系统中的相关功能需要启动器的支持

安卓系统的启动器支持情况如下:

触控圈

曾用名:触摸准星(TouchController v0.1.x 及以前)

外观

  • 触控圈实际上一个是同心二十四边形。
  • 触控圈及其破坏进度都是以反色渲染的。

特性

  • 触控圈现版本只能同时存在一个(除非实现 #77),这代表了 TouchController 当前所识别的手指。
  • 打开分离控制后将不会再显示触控圈。
  • 触控圈激活后能代替原有的十字准心瞄准方块或实体。

聊天界面

  • 此页面使用了仿基岩版的风格。
  • 此页面是 TouchController 的独立 GUI,与原版的聊天界面不是同一页面。
  • 此页面无法通过原版快捷键打开。只能通过设置控件动作为“游戏操作”,操作类型为“聊天界面”来打开页面。

布局

此页面仿照基岩版聊天界面 UI,顶部为页面标题:聊天与命令退出按钮。底部有以下几个模块:

  • 弹出键盘:点击一下可以选中输入框,进而自动弹出键盘(参见输入适配)。再次点击取消选中输入框,此时键盘应自动收起。
  • 快捷指令:目前暂未实现快捷指令功能,敬请期待。
  • 设置按钮:点击后弹出弹窗,可以设置行距和文本颜色。
  • 输入框:可在此输入消息。
  • 发送按钮:点击后发送输入框中的消息。

TouchController 常见问题

提示“代理未连接”

  • 请检查使用的启动器、平台是否支持 TouchController。(您可以在本 Wiki 的《游玩须知》中查看支持平台、启动器)
  • 如果启动器支持 TouchController,请确保启动器为最新版本。
  • 您可以点击这里请求支持一个平台或者启动器,不过 iOS 和 macOS 可能不会提供支持,因为我们没有相应的开发环境,不排除未来会有热心人士帮助我们完成 iOS 和 macOS 的支持。
  • 如果您使用的启动器、平台都支持 TouchController,但仍提示“代理未连接”,您可以尝试点击这里反馈一个 bug。

可以进入游戏,但功能异常

  • 请检查您使用的启动器、平台、游戏版本、mod 加载器是否为受支持的,确保安装了前置模组。
  • 您可以点击这里反馈一个 bug。请注意,反馈 bug 需要详细地说明情况,需要提供日志以及复现流程。

游戏崩溃

出现报错窗口

  • 游戏窗口内可能会显示错误原因(例如 mod 加载器版本过低、缺少前置等),您可以依照上面的指引尝试修复错误。
  • 如果您不能修复错误,可以报告 BUG

没有出现窗口

  • 启动器可能会为您提供一些信息,您可以根据启动器提供的信息尝试修复错误。
  • 如果启动器没有提供有效信息、启动器提示与其他 mod 冲突或者您不能修复错误,可以报告 BUG

如何给 TouchController 报告 bug

只安装了 TouchController 以及前置

  • 请检查您使用的启动器、平台、游戏版本、mod 加载器是否为受支持的,确保安装了前置模组。
  • 您可以点击这里反馈一个 bug。请注意,反馈 bug 需要详细地说明情况,需要提供日志以及复现流程。

安装了其他 mod

  • 请检查您使用的启动器、平台、游戏版本、mod 加载器是否为受支持的,确保安装了前置模组。
  • 您可以单独安装 TouchController 以及前置测试,如果仍出现 bug,请报告给我们。
  • 您可以移除其他 mod,再一一添加,测试是哪个 mod 导致的 bug,并报告给我们。
  • 您可以点击这里反馈一个 bug。请注意,反馈 bug 需要详细地说明情况,需要提供日志以及复现流程。

在整合包中使用 TouchController

  • 您可以尝试移除 TouchController。如果移除后仍出现异常,那么可能不是 TouchController 导致的 bug。
  • 在整合包中使用 TouchController 极易导致 bug。
  • 如果整合包中 mod 较少,您可以依照上方步骤测试 mod 冲突。
  • 如果 mod 过多无法测试,您可以点击这里反馈一个 bug。请注意,反馈 bug 需要详细地说明情况,需要提供日志以及复现流程。

TouchController 中的锚点机制

锚点机制旨在适配不同大小的屏幕,使得控件布局在任何设备上都可用。

锚点机制

  • 锚点共有 9 种,分别为屏幕四角、屏幕四边的中心、屏幕中心。
  • 无论画面边框如何变化,控件相对其锚点的位置始终不变。

自动锚点

Warning

自动锚点功能正在开发中!#318

  • 自动锚点通常是默认开启的。
  • 开启自动锚点的控件能够根据自身与锚点的距离自动切换锚点。

TouchController 的静默转头机制

介绍

这个机制起源于 #148#153,其主要内容是 TouchController 无法在正确的地方进行一些交互,其典型例子便是放水。

众所周知,只要不开启分离控制,那么您点击屏幕的位置便是交互的位置。但是在手持水桶放置时,点击屏幕后水却放置在准星所对准的位置,就像基岩版中的末影珍珠一样。这是因为 Minecraft 的服务端(其实单人游戏也有一个内置服务端)没有使用 TouchController 提供的目标,为什么不使用呢?

我们先讲一下 Minecraft 寻找目标的机制,Minecraft 的默认机制是在客户端处理的,所以 TouchController 可以通过修改客户端直接给服务器提供正确的目标。但是这个默认机制会忽略掉流体,因此这种机制下流体永远不能成为目标,那我们岂不是不能装水、不能放船了?所以 Minecraft 为一些物品启用了一个特殊的机制,这个机制能正确地判定目标,但是这个机制会在客户端和服务端同时判定,这就导致了服务端不再接收来自客户端的目标,而是根据玩家的实际朝向来确认目标。

为了解决这个问题,TouchController 加入了静默转头的机制,并且可以在“需要修正使用方向的物品”中配置。通过这个机制,您甚至可以完成一些基岩版中做不到的操作。在基岩版中,使用末影珍珠会向准星方向扔出。但是如果您在 TouchController 中将末影珍珠加入这个物品表,您就可以实现“指哪打哪”的末影珍珠。

机制

不使用分离控制,当手持“需要修正使用方向的物品”中的物品时,点击屏幕进行交互后 TouchController 会进行转头,使准星对准点击的方向、交互、然后再恢复原位。这一切都在一帧之内完成,这样您的客户端或其他玩家的客户端都不会渲染您的转头动作。

TouchController 对文本输入的适配

介绍

TouchController 能够在您选中输入框(注:目前仅限于 TouchController 的 GUI,将在未来支持原版 GUI)时自动弹出触摸键盘。还能让弹出键盘时输入框移动到键盘顶部,在输入时为输入法提供文本框中的内容,就像在其他应用程序中那样。

机制

Windows 系统

Tip

Windows 系统中仅实现了自动弹出键盘。

在 Windows 系统中,弹出键盘存在诸多条件。首先,Windows 需要能识别到触摸屏。此外,还需要在设置中启用相关功能。以Windows 11 为例,您需要打开设置,找到时间和语言 -> 输入,展开触摸键盘选项,将显示触摸键盘设为未连接键盘时始终。此时,找到一个输入框,选中它,触摸键盘应该能自动弹出。在游戏内,触摸键盘也会以同样的方式弹出。

Linux 系统

TouchController 在 Wayland 下实现了 text_input_v3 协议,在输入法获得焦点时会由合成器决定是否弹出键盘。

Android 系统

Important

Android 系统中的相关功能需要启动器的支持

安卓系统的启动器支持情况如下:

TouchController 的自定义布局

介绍

TouchController 的自定义布局系统拥有很高的自由度,在开始使用前阅读以下页面。

机制

特性

  • 控件若被拖出窗口外,会在松手时回到窗口边缘
  • 如果控件在窗口边缘,调整窗口大小后控件可能位于窗口外
  • 被锁定的控件会拥有红色描边而不是普通的白色描边

TouchController 的预设系统

介绍

在 v0.1.x 版本之前,预设系统只能做到保存与读取,不能进行编辑,与目前使用的布局相独立。但经过 v0.2.1 更新后,预设系统有了新的机制,可以做到不同布局之间的快捷切换,并且可以直接进行修改。

机制

  • 对布局的编辑必须使用一个预设,所有的编辑都在一个预设中进行。
  • TouchController 拥有一些内置预设,可以在创建预设时选择,或在预设模式下使用。
  • 预设目前拥有三项设置:分离控制、触摸手势、隐藏准星。
  • 您可以在预设列表中排序、复制预设,或进行重命名、修改设置等。

TouchController 的图层系统

参见:自定义图层条件

介绍

图层系统来自 #123 以及相关的各种 issue,其用途是在不同的情况下显示不同的控件,例如飞行、划船时。

机制

  • 每个图层都可以配置显示条件,如果多个图层同时满足条件会叠加图层。
  • TouchController 的控件必须在图层中创建。

图层编辑

是一个子页面,可以编辑图层名称和图层条件。可以在右侧的标签页中将图层条件添加到图层中,目前有三个标签页:

  • 预置条件:TouchController v0.2.1-beta11 及以前仅可用这种预置条件,详细说明见下方。
  • 手持物品:类似物品列表的默认物品表,点击一个物品可以添加手持此物品的条件。
  • 自定义条件:参见自定义图层条件

条件状态

每个条件拥有以下几种状态:

  • 永不:条件满足时不显示图层
  • 包含:条件满足时显示图层
  • 必要:所有“必要”条件满足时显示图层

预置条件

  • 游泳中:玩家触碰到水
  • 潜水中:玩家被水淹没
  • 飞行中:玩家在飞行
  • 允许飞行:玩家拥有飞行的能力
  • 潜行中:玩家正在潜行
  • 疾跑中:玩家正在冲刺
  • 在地上:玩家触碰地面
  • 不在地上:玩家没有触碰地面
  • 使用物品中:玩家正在使用物品
  • 在矿车上:玩家坐在矿车中
  • 在船上:玩家坐在船上
  • 在猪上:玩家正在骑猪
  • 在马上:玩家正在骑马
  • 在骆驼上:玩家正在骑骆驼
  • 在羊驼上:玩家正在骑羊驼
  • 在炽足兽上:玩家正在骑炽足兽
  • 乘坐在实体上:玩家处于骑乘状态
  • 选中方块:没有触控圈的情况下,准星对准方块(即使准星隐藏)。或者触控圈选中方块

TouchController 的两种自定义模式

介绍

TouchController 拥有两种自定义布局模式,一种是预设模式,一种是自定义模式。预设模式只能切换一些选项,而自定义模式拥有极高的自由度,同时也更为复杂。

机制

TouchController 会默认启用预设模式,也就是管理预设,此时进入自定义模式会出现一个弹窗,可以在弹窗中切换到自定义模式。此时进入预设模式会出现一个弹窗,可以在弹窗中切换到预设模式。

TouchController 中的自定义控件

介绍

TouchController 几乎所有的控件都是基于同一个自定义架构实现的,这也表明了TouchController 的自定义控件拥有的极高自由度。在自定义控件布局中的控件标签页中,有一个“内置控件”和一个“模板控件”。您可以在“内置控件”中添加控件,在此基础上修改后保存到“模板控件”中,然后在其他页面中使用,下文将详细的描述自定义控件的方法。

机制

外观

您一共可以为一个控件配置两种外观,分别是正常状态下和激活状态下,您也可以选择激活后不改变贴图或贴图变灰。特别地,文本和文本颜色的配置不能随着控件的激活状态而改变。除此之外,以下几种属性都可以随着控件的激活状态而改变:

  • 填充:在这个模式下,您可以使用颜色填充控件,也可以为其设置边框:边框宽度和边框颜色。这个模式下的控件大小会随着文本长度而改变,您可以为文本设置边距:上、下、左、右。
  • 固定贴图:在这个模式下,您可以将控件设置为 TouchController 所拥有的任何控件贴图(甚至包括摇杆手柄和摇杆背景)。在此模式下,您还可以调整控件缩放,最高为400%。
  • 自适应贴图:在这个模式下,您可以选择一些控件的背景作为自定义控件的背景。这个模式下的控件大小会随着文本长度而改变,您可以为文本设置边距:上、下、左、右。

操作

动作

大部分操作都可以有四种选择:无、键位、玩家操作、游戏操作。

  • 无:不做任何操作
  • 键位:执行 Minecraft “按键绑定”中某个条目的操作,但并非发送键值。在此模式下可以选择触发后锁定,锁定后相当于持续激活这个键位。锁定类型有三种:开始、停止、和反转。顾名思义,“开始”就是触发操作后开始锁定这个控件;“停止”就是触发操作后停止锁定这个控件;“反转”就是触发操作后反转锁定状态。当然,您也可以选择不锁定,此时可以使用一个选项“保持一个客户端刻”,如果遇到某些时候操作按键无效,请启用这个选项。
  • 玩家操作:触发玩家的某个操作:如停止飞行、开始疾跑、停止疾跑
  • 游戏操作:触发某个游戏操作:如打开游戏菜单、打开聊天界面等
  • 图层条件:切换、启用、禁用某自定义图层条件

触发

  • 按压:手指按下控件的瞬间触发,这个操作可以有上述四种选择。
  • 按下:手指按下控件后持续触发,这个操作只能绑定键位(具体见上)。
  • 松开:手指按下控件后松开的瞬间触发,这个操作可以有上述四种选择。
  • 双击:手指双击控件后的瞬间触发,并且可以设置两次点击控件的判定间隔,这个操作可以有上述四种选择。

TouchController 的自定义图层条件

介绍

自定义图层条件是为了通过自定义控件控制图层而设计的,自定义图层条件与预设绑定,不同预设中的自定义图层条件不会互相干扰。

机制

可以在图层编辑页面编辑自定义图层条件,如添加、重命名和删除。添加的自定义图层条件将显示在同预设所有图层的自定义条件页面中。

TouchController 中的触控圈

曾用名:触摸准星(TouchController v0.1.x 及以前)

外观

  • 触控圈实际上一个是同心二十四边形。
  • 触控圈及其破坏进度都是以反色渲染的。

特性

  • 触控圈现版本只能同时存在一个(除非实现 #77),这代表了 TouchController 当前所识别的手指。
  • 打开分离控制后将不会再显示触控圈。
  • 触控圈激活后能代替原有的十字准心瞄准方块或实体。

TouchController 管理预设的特性

  • 如果页面宽度不足,原本在页面下方的控件样式选项将移至右侧

TouchController 设置子页面:物品列表的特性

  • 点击空白的格子可以添加“空气”(minecraft:air)。

TouchController 的设置界面

页面标题

  • 当前页面的标题会显示在返回按钮上
  • 当前标签页的标题会显示在顶栏居中

顶栏按钮

返回

  • 这是一个文本按钮,由“<”和页面标题组成
  • 点击会返回到上一级,如果是退出设置界面会保存所有修改

重置

  • 可以将设置恢复为默认状态
  • 点击后可以在弹窗中选择将要恢复的范围:
    • 当前标签页
      将当前标签页的所有设置重置为默认状态
    • 布局设置
      重置自定义布局页面的全部设置
    • 所有设置
      重置 TouchController 所有设置,相当于清除 TouchController 的配置文件

撤销

丢弃所有未保存的更改

取消

丢弃所有未保存的更改,并退出设置界面

TouchController 设置界面中的标签页

TouchController 设置界面采取类似基岩版的结构,界面左侧为标签页列表栏,所有标签页共用标签页列表栏以及顶栏。

标签页:关于

关于标签页展示了 TouchController 的相关信息、开源协议等内容。

标签页:常规

  • 此标签页属于“通用”分类
  • 此标签页中的所有选项均为开关
  • 常规标签页是进入设置界面后默认显示的标签页。

设置项

屏蔽鼠标移动

  • 游戏内描述:在游戏内屏蔽鼠标移动。当你的系统将触摸输入映射为鼠标输入时启用这个选项。
  • 这个选项让 Minecraft 屏蔽鼠标的移动,启用后可以避免一些意外的视角移动。
  • 这个选项默认启用

屏蔽鼠标点击

  • 游戏内描述:在游戏内屏蔽鼠标点击。当你的系统将触摸输入映射为鼠标输入时启用这个选项。
  • 这个选项让 Minecraft 屏蔽破坏以及使用键位的输入,启用后可以避免一些问题。
  • 这个选项默认启用

禁用光标锁定

  • 游戏内描述:在游戏内禁用光标锁定,从而使游戏不会捕获光标的焦点。在移动端请关闭这个选项。
  • 这个选项让 Minecraft 不再锁定鼠标光标,启用后光标不再隐藏,并且可以移出游戏窗口。
  • 这个选项默认禁用

屏蔽快捷栏按键输入

  • 游戏内描述:屏蔽快捷栏绑定按键的输入。部分移动端启动器在点击快捷栏时会发送这些按键,使用这些启动器时启用这个选项。
  • 这个选项让 Minecraft 屏蔽快捷栏的绑定按键。
  • 如果没有更改键位,这个选项会让 Minecraft 屏蔽主键盘 1-9 的数字键输入。
  • 这个选项默认禁用

震动反馈

  • 游戏内描述:为破坏方块提供触感反馈。目前只支持 Android 平台。
  • 启用这个选项后会在破坏方块开始时震动,Android 平台的震动由启动器提供支持,其他平台的震动支持正在开发中。
  • 这个选项默认启用

快速主副手交换

  • 游戏内描述:双击快捷栏中的一个格子时交换主副手的物品。
  • 启用这个选项后可以双击快捷栏的一个格子来交换主副手的物品。
  • 这个选项默认禁用

标签页:控制

  • 此标签页属于“通用”分类
  • 此标签页中的所有选项均为滑杆

设置项

视角移动灵敏度

  • 游戏内描述:设置横向滑动整个屏幕时视野旋转的角度。
  • 默认值:495(单位:度)
  • 控制手指划过一个屏幕宽度时视野旋转的角度。

长按检测阈值

  • 游戏内描述:设置判断屏幕点击是长按还是移动所需要的最小移动距离。
  • 默认值:2(单位:屏幕宽度的百分比)
  • 如果手指按下后移动的距离超过了这个数值,则判定为滑动屏幕。

长按检测时间

  • 游戏内描述:设置判断屏幕点击是否为长按所需要的最小按下时间。
  • 默认值:5(单位:客户端刻)
  • 如果手指按住不动的时间超过了这个数值则判定为长按。

标签页:触控圈

  • 此标签页属于“通用”分类
  • 此标签页中的所有选项均为滑杆

设置项

半径

  • 游戏内描述:触控圈的半径。
  • 默认值:36(单位:像素)
  • 触控圈的半径,此值与“界面尺寸”相乘后的积为实际渲染半径。

边框宽度

  • 游戏内描述:触控圈的边框宽度。
  • 默认值:2(单位:像素)
  • 触控圈的边框宽度,此值与“界面尺寸”相乘后的积为实际渲染宽度。

初始进度

  • 游戏内描述:破坏方块时在触控圈中渲染的初始进度。
  • 默认值:0.5(单位:无)
  • 破坏方块时的初始进度在触控圈中心渲染的反色圆圈半径占触控圈半径的比例。

标签页:调试

  • 此标签页属于“通用”分类
  • 此标签页中的所有选项均为开关
  • 此标签页中的所有选项默认禁用

设置项

显示指针位置

  • 游戏内描述:在屏幕上绘制所有指针。
  • TouchController 会在所有获取到的触摸点上渲染一个回字形指针,并在其下方渲染一个 ID,这个 ID 表示了当前触摸点是游戏启动以来的第几个触摸点。
  • 使用鼠标模拟的触摸点,其 ID 永远为 0。

触摸模拟

  • 游戏内描述:将鼠标输入模拟为触摸输入。
  • 启用后 TouchController 将不再获取触摸信息。
  • 启用后会屏蔽鼠标点击,即使没有启用“屏蔽鼠标点击”

标签页分类:物品

  • 需要修正使用方向的物品:使用此标签页内配置的物品时会静默转头
  • 手持时显示准星的物品:手持此标签页内配置的物品时会始终显示准星。
  • 可长按使用的物品:手持此标签页内配置的物品时,对准任何地方长按都可以使用。

设置项

白名单

  • 游戏内描述:通过物品列表来配置。
  • 此选项拥有一个按钮以打开物品列表

黑名单

  • 游戏内描述:黑名单的优先级高于本页其他条目。
  • 此选项拥有一个按钮以打开物品列表

组件

  • 游戏内描述:根据物品的物品堆叠组件属性来配置。
  • 此选项拥有一个按钮以打开组件列表

子类

  • 游戏内描述:无
  • 子类就是本标签页中的所有开关,可以一次性配置一个分类中的物品。

TouchController 设置界面中的子页面

子页面一般用于展示较为复杂的设置,这些页面需要比标签页更多的宽度,或者需要特殊的 GUI。

  • 子页面全屏显示,其顶栏可能与设置主界面不同。
  • 子页面不存在标签页列表栏。

子页面:管理预设

选项

样式

贴图风格

  • 类型:单选列表
  • 选项:
    • 旧版贴图
    • 旧版图标和新版控件背景
    • 新版贴图
    • 新版图标和旧版控件背景
  • 参见控件样式

不透明度

  • 类型:滑杆
  • 默认值:60%
  • 这个选项用来调整所有控件的不透明度,但物品栏按钮不受此选项影响。

大小

  • 类型:滑杆
  • 默认值:100
  • 这个选项用来调整所有控件的大小,但物品栏按钮不受此选项影响。

布局

控制方式

  • 类型:单选列表
  • 选项:
    • 点击屏幕交互
    • 使用准星瞄准
  • 即:是否启用“分离控制”

通过按钮攻击与交互

  • 类型:选项
  • 前置:控制方式为“使用准星瞄准”
  • 默认值:启用
  • 启用后将关闭触摸手势,仅使用按钮攻击与交互。

移动方式

  • 类型:单选列表
  • 选项:
    • 方向键
    • 摇杆
  • 此选项会导致下方选项产生一些差异

使用摇杆疾跑

  • 类型:选项
  • 前置:移动方式为“摇杆”
  • 默认值:禁用
  • 摇杆推到 110% 后触发疾跑。

交换跳跃与潜行

  • 类型:选项
  • 前置:
    • 禁用“通过按钮攻击与交互”
    • 移动方式为“方向键”
  • 默认值:禁用

疾跑按键

  • 类型:下拉菜单
  • 选项:
    • 右上角
    • 右侧

使用原版聊天界面

  • 类型:选项
  • 默认值:禁用
  • 控制聊天按钮是否打开 TouchController 的聊天界面

子页面:自定义布局

页面结构

顶栏

返回按钮

粘贴控件

  • 将剪贴板中的控件粘贴到当前图层
  • 如果剪贴板没有控件,按钮会显示为禁用状态
  • 粘贴后控件会保留原来的位置和属性

删除控件

  • 删除当前选中的控件
  • 如果没有选中控件,按钮会显示为禁用状态

展开编辑菜单

  • 点击可以显示或隐藏边栏

撤销和重做

  • 有两个按钮,分别是撤销上一次操作和重做上一次操作
  • 如果没有操作,按钮会显示为禁用状态

边栏

属性

此标签页的工具栏按钮为:

  • 锁定:全局锁定控件移动
  • 高亮:高亮全部控件
  • 保存:将当前控件储存为模板
  • 格式刷:开发中

此标签页的主体为从上至下排列的一系列选项:

  • 名称:一个文本框,可以进行重命名。
  • 移动锁定:可以锁定当前控件。
  • 锚点:参见锚点机制
  • 不透明度:一个滑杆
  • 滑动触发:按下一个启用了滑动触发的控件,手指滑动到另一个启用了滑动触发控件即可触发此控件。
  • 捕获触发:按下后,手指移开仍继续触发。
  • 视角跟随:按下后手指可以移动视角。

这些选项的下方为自定义控件的相关设置。

此标签页的底部有两个按钮,分别为复制控件和剪切控件。

控件

此标签页的工具栏按钮为:

  • 保存:将当前控件储存为模板
  • 设置:新控件默认不透明度、贴图风格

此标签页拥有两个子标签页,可以在页面底部切换,分别为:

  • 内置控件:TouchController 预置的控件,可以直接使用(在内置控件的最后,有一个作为模板的空白自定义控件)。
  • 模板控件:通过上述的保存按钮储存的控件,用于复用自定义后的控件。

图层

此标签页的工具栏按钮为:

  • 添加图层:点击后跳转到图层编辑页面,可以编辑图层条件、名称并添加一个空图层。

此标签页的主体为从上至下排列的一系列图层,下方有上移和下移按钮,用于排序图层。

点击图层右边的三个点,可以删除、复制、编辑图层,点击编辑按钮后会跳转到图层编辑页面。

关于图层的详细机制,请查看图层系统

预设

此标签页的工具栏按钮为:

  • 添加预设:点击后弹出窗口,可以选择从模板创建一个预设或者直接创建一个新的预设

此标签页的主体为从上至下排列的预设列表,下方有上移和下移按钮,用于排序预设。

点击预设右边的三个点,可以删除、复制、编辑预设,可以查看预设文件路径,可以在此调整预设设置。

关于预设的详细机制,请查看预设系统

子页面:GUI控件布局

Warning

此页面正在开发中!

子页面:物品列表

  • 此页面只拥有返回按钮
  • 这个页面用来配置物品列表

描述

这个页面分为两部分,左半部分是已添加的物品。每一条包含物品图标和物品名称。右半部分是物品表,可以在进入时选择模式(也可以在选择物品后按下 Escape 来重新选择):默认物品表、原版物品栏、JEI(REI 等)物品表 (JEI、REI 等物品表正在开发中)

默认物品表和 JEI(REI 等)物品表的显示模式一致,所有物品的图标以从左往右、从上往下的顺序排列,在物品表的上方有一个搜索框,可以通过物品名称搜索物品。

原版物品栏对应 Minecraft 中的创造模式物品栏,原版物品栏的物品表以及标签与跟创造模式物品栏一致,模组添加的标签页也能在此显示。指南针图标的标签页以及箱子图标的标签页是两个特殊的标签页;指南针图标的标签页包含所有物品,可以通过物品名称搜索物品;箱子图标的标签页就是生存模式物品栏,即玩家背包。

子页面:组件列表

  • 此页面只拥有返回按钮
  • 这个页面用来配置物品堆叠组件列表

描述

关于物品堆叠组件,可以参考中文 Minecraft Wiki,这个页面可以快速筛选拥有某一组件的物品,组件的图标在显示时会轮播拥有此组件的物品。

TouchController 的聊天界面

  • 此页面使用了仿基岩版的风格。
  • 此页面是 TouchController 的独立 GUI,与原版的聊天界面不是同一页面。
  • 此页面无法通过原版快捷键打开。只能通过设置控件动作为“游戏操作”,操作类型为“聊天界面”来打开页面。

布局

此页面仿照基岩版聊天界面 UI,顶部为页面标题:聊天与命令退出按钮。底部有以下几个模块:

  • 弹出键盘:点击一下可以选中输入框,进而自动弹出键盘(参见输入适配)。再次点击取消选中输入框,此时键盘应自动收起。
  • 快捷指令:目前暂未实现快捷指令功能,敬请期待。
  • 设置按钮:点击后弹出弹窗,可以设置行距和文本颜色。
  • 输入框:可在此输入消息。
  • 发送按钮:点击后发送输入框中的消息。

TouchController 的控件样式

概念

  • 图集是对控件风格的分类,TouchController 目前拥有四种图集。
  • 图标指的是控件中的图案,同样功能的控件可能有不同的图标;不同功能的控件一定有不同的图标,这些图标表达的含义也不相同。

图集

经典

  • 英文名称:classic
  • 描述:基岩版旧版贴图
  • 经典图集是基岩版早期使用的贴图,也包括一些 TouchController 美术组补充的贴图,例如虚拟摇杆、疾跑、攻击、使用等等

新样式

  • 英文名称:new
  • 描述:基岩版新版贴图
  • 新样式图集是基岩版目前正在使用的贴图,风格比较扁平化

经典扩展

  • 英文名称:classic_extension
  • 描述:新版图标和旧版控件背景
  • 此图集全部贴图均由 TouchController 美术组绘制,但 TouchController 原创控件以及一些基岩版原版经典贴图所没有的控件贴图不在其中

新样式回归

  • 英文名称:new_regression
  • 描述:旧版图标和新版控件背景
  • 此图集全部贴图均由 TouchController 美术组绘制,但 TouchController 原创控件以及一些基岩版原版经典贴图所没有的控件贴图不在其中

TouchController 中的游戏内控件

相关页面

内置控件

TouchController 的内置控件主要是基于自定义控件实现的,但也有一些控件无法通过标准自定义控件实现,它们有一些不同于自定义控件的设置。通过自定义控件实现的内置控件在此不再赘述(您可以直接查看其属性以了解其特性),我们主要介绍无法通过标准自定义控件实现的内置控件:

方向键

方向键除了可以调整大小、调整图集外,还可以有以下设置:

  • 显示左后和右后按键:是否显示左后和右后的斜向按键贴图
  • 边距:方向键各个按钮之间的间距
  • 中心按钮(游戏内名称:附加按钮):中心按钮可以独立调整大小、激活贴图,并且包含无、普通、滑动无锁定、滑动锁定四种类型:
    • 无:不显示中心按钮
    • 普通:操作与普通控件拥有相同的设置
    • 滑动无锁定:手指滑过中心按钮后触发,操作与普通控件拥有相同的设置
    • 滑动锁定:手指滑过中心按钮后触发一次,操作只能设为绑定键位

虚拟摇杆

虚拟摇杆除了可以修改图集外,还可以分别调整背景和手柄的大小,同时拥有两个选项:

  • 触发疾跑:摇杆推到 110% 后触发疾跑
  • 激活时提高不透明度:手指移动摇杆时,摇杆提高不透明度

划船按钮

划船按钮较为特殊,就像坦克一样,按住左边的按钮可以右转,按住右边的按钮可以左转,按住两个按钮可以同时前进。

划船按钮除了可以调整大小、调整图集外,还可以设置当前按钮为左侧按钮或右侧按钮。

TouchController 中的 GUI 控件

Warning

GUI 控件功能正在开发中!

自定义布局基础

TouchController 是一款有着图层、自定义控件等强大自定义功能的触控模组。对于大部分玩家来说,可能自带的控件预设功能已经足够,不过当你想修改一下控件的位置,或者是添加一下新的控件时,打开自定义模式后却不知所措。没关系!这篇文章就是给你这样的人的。读完这篇文章,你将会了解:

  • TouchController 自定义布局的基本原理
  • TouchController 组件的布局方式
  • TouchController 的自带控件
  • TouchController 的图层系统
  • TouchController 的图层条件

TouchController 自定义布局的基本原理

可能大部分人对于自定义布局的概念就是把能够把界面控件放在屏幕上自己想要的地方。不过 TouchController 做的更多!如果你有玩过基岩版的 Minecraft,那么你就知道界面上的按钮是会根据玩家状态不同变更的,例如:

  • 飞行和游泳时,跳跃键会变成上升和下降键
  • 骑乘时,会出现离开载具的按键
  • 等等……

TouchController 不像部分启动器自带的按键布局,由于它是集成在游戏内的,因此它可以根据玩家的状态去自动修改界面上的控件。不过相对于基岩版,TouchController 通过图层系统,提供了远比基岩版强大的自定义功能,你可以非常自由地定义界面上的控件什么时候显示,什么时候隐藏。

除了控件的位置和显示隐藏,TouchController 还完全支持自定义控件的行为与样式。你可以自由定义一个控件的外观和文本,并且修改按下、松开等事件时的行为。

再多说一句,实际上 TouchController 自带的控件预设本质上就是自带的自定义布局,它们的工作方式与你自己的自定义布局完全一样。这说明你完全可以自己从头开始搓一个和自带的预设一样的自定义布局。

TouchController 组件的布局方式

说了这么多,那么我们从最基本的组件开始吧!第一次打开 TouchController 的自定义模式后,模组会把你当前的控件预设复制一份到你的自定义布局中,因此你应该会看到这样的界面:

第一次打开 TouchController 自定义布局的界面,顶上有一条顶栏,中间是三个控件

界面分为两部分:顶栏和图层编辑界面。顶栏上的按钮功能如下:

  • 返回按钮:就是返回上一层界面
  • 粘贴控件:把之前复制的控件粘贴到当前图层中
  • 删除控件:删除当前选中的控件
  • 展开编辑菜单:显示编辑侧栏,这个侧栏中包含了很多重要的功能,后面会详细解释
  • 撤销和还原:撤销和还原你的操作

在图层编辑界面,你就可以拖曳控件来移动控件的位置,或者单击控件以选中它。选中后,控件的边缘会有白框,如下:

选中了暂停控件,控件的边缘出现了白框

再打开侧栏,我们就可以看到很多功能了。在控件属性里我们可以看到锚点的选项,具体如下:

控件属性里的锚点选项,一共有 9 种

锚点主要影响屏幕大小变化时控件的位置。例如,锚点在右下角时,如果你放大或者缩小游戏窗口,控件相对于屏幕右下角的位置不会改变。举个例子:基岩版的移动控制在左下角,因此你要模仿的话,锚点就应该在左下角,这样游戏界面改变时,移动控制就仍在左下角。再例如说,暂停按钮和聊天按钮都在屏幕中上方,因此它们的锚点就该在中上方,这样不论游戏界面大小怎么改变,它们都固定在屏幕中上方。如何确定锚点的基本思路就是:控件应该在屏幕上的哪个方向(例如右上角),那么锚点就应该设置为这个方向。

说了锚点,接下来就是控件的定位方式了。TouchControlle 采用锚点+绝对定位的方式,也就是屏幕上控件的位置先由锚点决定,然后实际位置是锚点位置加上一段可以通过拖曳来改变的偏移量。例如如果锚点在右下角,偏移量是 (10, 10),那么它的位置就是屏幕右下角往坐上 XY 走 10 个单位的位置。

TouchController 的自带控件

如果编辑现有的控件很难满足你的需求,那么我们就尝试加入一些新的控件到布局内吧!整体过程非常简单:打开编辑菜单侧栏,按下第二个按钮,就可以打开控件菜单,具体如图:

自带控件列表

选中一个控件后,它就出现在界面编辑中了,并且返回游戏界面时也可以看到这个新加入的控件。恭喜你学会了图层的基本编辑!

TouchController 的图层系统

如果在上一步你加入了方向键或者虚拟摇杆,你就会发现实际游戏内你加的控件和原有的控件叠在了一起:

两个方向键叠在了一起

这不是 bug,而是一个特性!实际上 TouchController 的布局由若干个图层组成,每个图层都可以独立编辑,有着独立的图层条件。如果你用过 Photoshop、GIMP 等图片编辑软件,那么你对图层应该不会陌生。如果你没用过,那么简单介绍图层机制就是把整个屏幕上的东西分为几层,每层都有可以独立显示,例如:

  • 控制图层:屏幕上总是会显示的东西,例如暂停键、聊天键
  • 普通层:玩家普通在地上走路时的界面,包含方向键、跳跃键
  • 游泳层:玩家在游泳时的界面,包含方向键、上升下降键
  • 还有很多图层……

实际游玩时,TouchController 会根据每个图层设置的图层条件,把它们叠加在一起,从而得到你最终看到的界面。你刚才一直在编辑控制图层,所以你无法看到普通层和游泳层等其它图层的内容,而且由于图层叠加的特性,你刚才加入的控件就会和普通层等图层的内容重叠在一起。

那么怎么切换图层呢?其实就在控件按钮的下面就是图层按钮。点下图层按钮,你就可以看到所有的图层,具体如下:

图层列表,包含控制图层、普通图层、游泳图层、飞行图层等

每个图层右侧有一个菜单,允许你编辑名称和图层条件,并且复制或者删除。在侧栏的底下,你还可以看到新建图层、上移下移三个按钮。点击图层列表中的图层,你就可以切换当前的图层了。所以刚才如果要编辑方向键或者虚拟摇杆,你应该在普通层去进行操作,而不是在默认的控制图层。

TouchController 的图层条件

创建图层或者编辑图层时,你就会看到这样的界面:

图层编辑界面,正在编辑普通层

第一眼看这个界面东西非常多,我们来慢慢讲解:

最顶上一条的顶栏就是返回和保存,这个我们就不用讲解了。顶栏下面还有一栏,左边是图层名称,右边是图层条件选择。再往下左右分为图层条件列表和图层条件选择两块。

图层条件列表中包含若干个图层条件。每个图层条件都可以选择以下三种,具体的意义如下:

  • 从不:满足这个图层条件时,图层永远不显示
  • 必须:不满足这个图层条件时,图层永远不显示
  • 要求:必须有一个设置为“要求”的图层条件满足时,图层才会显示

例如上面图片中的图层条件,可以理解为如下:

  • 第一条为“游泳中”和“从不”,那么玩家处于游泳状态时,这个图层就不会显示。
  • 第二条为“飞行中”和“从不”,那么玩家处于飞行状态时,这个图层就不会显示。
  • 第三条为“乘坐在实体上”和“从不”,那么玩家乘坐在实体上时,这个图层就不会显示。

再拿游泳图层举例:

游泳图层的图层条件

  • 第一条为“乘坐在实体上”和“从不”,那么玩家乘坐在实体上时,这个图层就不会显示。
  • 第二条为“飞行中”和“从不”,那么玩家处于飞行状态时,这个图层就不会显示。
  • 第三条为“游泳中”和“要求”,第四条为“潜水中”和“要求”,那么玩家处在游泳或者潜水两者其一时,同时满足上面“乘坐在实体上”和“飞行中”不触发的两个条件时,这个图层才会显示。

当然,图层条件列表也可以为空,代表一直显示。

结语

这就是 TouchController 自定义布局的基础知识了。希望通过这篇文章,你可以掌握 TouchController 布局的基本使用。