有什么lua代码可以实现模拟触控,就是模拟鼠标或者手指的点击屏幕

有什么lua代码可以实现模拟触控,就是模拟鼠标或者手指的点击屏幕,第1张

- 设置触摸模式

node:setTouchMode(cc.TOUCH_MODE_ONE_BY_ONE) -- 单点触摸

-- 或者

node:setTouchMode(cc.TOUCH_MODE_ALL_AT_ONCE) -- 多点触摸

-- 是否启用触摸

-- 默认值: false

node:setTouchEnabled(true)

-- 是否允许当前 node 和所有子 node 捕获触摸事件

-- 默认值: true

node:setTouchCaptureEnabled(true)

-- 如果当前 node 响应了触摸,是否吞噬触摸事件(阻止事件继续传递)

-- 默认值: true

not:setTouchSwallowEnabled(true)

-- 添加触摸事件处理函数

node:addNodeEventListener(cc.NODE_TOUCH_EVENT, function(event)

-- event.phase 的值是:

-- cc.NODE_TOUCH_TARGETING_PHASE

-- event.mode 的值是下列之一:

-- cc.TOUCH_MODE_ONE_BY_ONE 单点触摸

-- cc.TOUCH_MODE_ALL_AT_ONCE 多点触摸

-- event.name 的值是下列之一:

-- began 触摸开始

-- moved 触摸点移动

-- ended 触摸结束

-- cancelled 触摸被取消

-- 如果是单点触摸:

-- event.x, event.y 是触摸点位置

-- event.prevX, event.prevY 是触摸点之前的位置

-- 如果是多点触摸:

-- event.points 包含了所有触摸点的信息

-- event.points = {point, point, ...}

-- 每一个触摸点的值包含:

-- point.x, point.y 触摸点的当前位置

-- point.prevX, point.prevY 触摸点之前的位置

-- point.id 触摸点 id,用于确定触摸点的变化

if event.name == "began" then

-- 在单点触摸模式下:在触摸事件开始时,必须返回 true

-- 返回 true 表示响应本次触摸事件,并且接收后续状态更新

return true

end

end)

首先触摸方式应该是Touch,这点毋容置疑的。其次在require后,对导出的lua文件中的触摸回调添加自定义回调,重点就是自定义回调中如何获取触摸点坐标,也就是题主所提出的问题关键。比如自定义回调函数为CloseButton( node, eventType ),node就是触摸本身的节点(比如按钮,图片等),在CloseButton中获取实时的触摸坐标为node:getTouchMovePosition(),这样就能获取到move时的触摸点坐标。如果想知道触摸开始的的坐标则为node:getTouchBeganPosition()。

试试下面的代码:

f=io.open("var/touchelf/res/qqq.txt","r")

repeat

w=f:read('*l')

if w~=nil then print(w) end

until w==nil

io.close(f)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11846901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存