载入中...
搜索中...
未找到
触摸模块
触摸模块
脚本入口: 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 绑定;同一模块创建的辅助对象(例如 World、Body、Source)的方法也列在这里。
getName()、getTouchCount()、getTouchX()、getTouchY()
使用要点
- 模块对象和它创建的资源对象应保存在全局或实体状态中,不要在每帧重复创建。
- 带
update(dt)的系统应在eve_update调用;绘制方法应在eve_render调用。 - 参数约束、默认值和返回类型以对应模块头文件及
addFunc绑定为准;本文 API 快查与当前源码同步生成。
源码: src/modules/touch/ 相关测试: 在 test/ 中搜索 touch。