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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)