载入中...
搜索中...
未找到
触摸模块

触摸模块

脚本入口: eve.Touch()

按索引读取当前触点数量和归一化/屏幕坐标。

基本用法

local touch = eve.Touch();
for (local i = 0; i < touch.getTouchCount(); i++)
moveCursor(touch.getTouchX(i), touch.getTouchY(i));

对象关系与调用时机

Touch 用每帧索引暴露活动触点;索引只在当前帧有效。手势识别器应复制坐标和自己的状态,不应保存“触点对象”。

目标导向指南

单指拖动

检查 getTouchCount() > 0 后读取第 0 个触点,保存上一帧位置计算拖动量。触点消失时结束拖动,不要继续访问旧索引。

多点缩放

至少有两个触点时计算两点距离,与上一帧距离比较得到缩放比例;触点数量改变时重置基准,避免缩放突跳。

常见问题

  • 触点数量为 0 仍读索引:先检查 count。
  • 假设索引跨帧代表同一手指:触点变化后要重置手势。
  • 桌面无触摸时当作错误:这是正常的 0 个触点。

API 快查

下列方法名来自当前 Squirrel 绑定;同一模块创建的辅助对象(例如 WorldBodySource)的方法也列在这里。

  • getName()getTouchCount()getTouchX()getTouchY()

使用要点

  • 模块对象和它创建的资源对象应保存在全局或实体状态中,不要在每帧重复创建。
  • update(dt) 的系统应在 eve_update 调用;绘制方法应在 eve_render 调用。
  • 参数约束、默认值和返回类型以对应模块头文件及 addFunc 绑定为准;本文 API 快查与当前源码同步生成。

源码: src/modules/touch/ 相关测试:test/ 中搜索 touch