方式1:

local MainScene = class("MainScene", cc.load("mvc").ViewBase)function MainScene:onCreate()-- add background imagelocal layer = cc.Layer:create()layer:addTo(self)layer:addChild(display.newSprite("bg_0.jpg"):move(display.center))-- add HelloWorld label--local startBtn = cc.Label:createWithSystemFont("开始", "Arial", 20)local startBtn = cc.Sprite:create("GameScene_nn.png", cc.rect(760,0,250,80))startBtn:setScale(0.25,0.25)startBtn:move(display.center)layer:addChild(startBtn)--local tmpLayer = cc.Layer.create()local startLb = cc.Label:createWithSystemFont("开始", "Arial", 40)startBtn:addChild(startLb)startLb:setPosition(120,50)local function touchBegan(touch, event)--取得注册事件的节点,这里是layerlocal node = event:getCurrentTarget()--touch:getPreviousLocationInView():取得之前触摸点的位置信息 UI坐标--getPreviousLocation() :OpenGL坐标--getLocationInView():当前坐标--getLocation():print(touch)return falseendlocal function touchMoved(touch, event)return falseendlocal function touchEnded(touch, event)return falseendlocal function touchCanceled(touch, event)return falseendlocal listen = cc.EventListenerTouchOneByOne:create()listen:registerScriptHandler(touchBegan, cc.Handler.EVENT_TOUCH_BEGAN)listen:registerScriptHandler(touchMoved,cc.Handler.EVENT_TOUCH_MOVED)listen:registerScriptHandler(touchEnded,cc.Handler.EVENT_TOUCH_ENDED)listen:registerScriptHandler(touchCanceled,cc.Handler.EVENT_TOUCH_CANCELLED)local eventDispatcher = layer:getEventDispatcher()--节点添加的先后顺序为优先级的添加监听器方式,节点越上层,优先级越高--eventDispatcher:addEventListenerWithSceneGraphPriority(listen,layer)--void EventDispatcher::addEventListenerWithFixedPriority(EventListener* listener, int fixedPriority)--固定优先级的添加监听器方式,fixedPriority>0, 数值越小,优先级越高eventDispatcher:addEventListenerWithFixedPriority(listen, 1)
end
return MainScene

方式2:

   local function onTouch(eventType, x, y)if eventType == "began" thenreturn trueelseif eventType == "ended" thenreturn onTouchEnded(x, y)endendlayer:setTouchEnabled(true)layer:registerScriptTouchHandler(onTouch)

示例: 按钮点击后大小变化

local MainScene = class("MainScene", cc.load("mvc").ViewBase)function MainScene:onCreate()-- add background imagelocal layer = cc.Layer:create()layer:addTo(self)layer:addChild(display.newSprite("bg_0.jpg"):move(display.center))-- add HelloWorld label--local startBtn = cc.Label:createWithSystemFont("开始", "Arial", 20)local startBtn = cc.Sprite:create("GameScene_nn.png", cc.rect(760,0,250,80))startBtn:setScale(0.25,0.25)startBtn:move(display.center)layer:addChild(startBtn)--local tmpLayer = cc.Layer.create()local startLb = cc.Label:createWithSystemFont("开始", "Arial", 40)startBtn:addChild(startLb)startLb:setPosition(120,50)local startBtn1 = cc.Sprite:create("GameScene_nn.png", cc.rect(760,0,250,80))startBtn1:setScale(0.25,0.25)startBtn1:setPosition(cc.p(200,100))--startBtn1:move(display.center)layer:addChild(startBtn1)local function touchBegan(touch, event)local node = event:getCurrentTarget()local location = node:convertToNodeSpace(touch:getLocation())local targetSize = node:getContentSize()local rect = cc.rect(0,0,targetSize.width, targetSize.height)if cc.rectContainsPoint(rect, location) thennode:setScale(0.21,0.21)if node==startBtn thenprint("click button 1")elseprint("click button 2")endendreturn trueendlocal function touchMoved(touch, event)print("touchMoved")return falseendlocal function touchEnded(touch, event)local node = event:getCurrentTarget()node:setScale(0.25,0.25)return trueendlocal function touchCanceled(touch, event)print("touchCanceled")return falseendlocal listen = cc.EventListenerTouchOneByOne:create()listen:registerScriptHandler(touchBegan, cc.Handler.EVENT_TOUCH_BEGAN)listen:registerScriptHandler(touchMoved,cc.Handler.EVENT_TOUCH_MOVED)listen:registerScriptHandler(touchEnded,cc.Handler.EVENT_TOUCH_ENDED)listen:registerScriptHandler(touchCanceled,cc.Handler.EVENT_TOUCH_CANCELLED)--local eventDispatcher = layer:getEventDispatcher()local eventDispatcher = cc.Director:getInstance():getEventDispatcher()eventDispatcher:addEventListenerWithSceneGraphPriority(listen,startBtn)local listen1 = listen:clone()eventDispatcher:addEventListenerWithSceneGraphPriority(listen1,startBtn1)end
return MainScene

Cocos2dx-lua触摸事件处理相关推荐

  1. ​iOS的界面触摸事件处理机制,然后用一个实例来说明下应用场景.

    2019独角兽企业重金招聘Python工程师标准>>> 主要是记录下iOS的界面触摸事件处理机制,然后用一个实例来说明下应用场景. 一.处理机制 界面响应消息机制分两块,(1)首先在 ...

  2. cocos2d-x lua 学习笔记(1) -- 环境结构

    Cocos2d-x 3.0超过环境的版本号来建立和前Cocos2d-x 2.0 差异较大的版本,从同时Cocos2d-x 3.0项目打包成apkAndroid的应用程序文件,步骤,构建环境有些乏味安德 ...

  3. cocos2d-x lua table数据存储

    cocos2d-x lua table数据存储 version: cocos2d-x 3.6 1. 将table转为json http://blog.csdn.net/songcf_faith/art ...

  4. ReactNative 触摸事件处理

    ReactNative触摸事件处理 对RN触摸事件的捕获与冒泡机制的理解 组件A.B.C结构 组件A组件B组件C 捕获.冒泡机制 sequenceDiagram A->>A: 是否捕获?若 ...

  5. cocos2d-x lua 学习笔记(1) -- 环境搭建

    Cocos2d-x 3.0以上版本的环境搭建和之前的Cocos2d-x 2.0 版差异较大的,同时从Cocos2d-x 3.0项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后, ...

  6. Cocos2d-x Lua中实例:帧动画使用

    Cocos2d-x Lua中实例:帧动画使用 下面我们通过一个实例介绍一下帧动画的使用,这个实例如下图所示,点击Go按钮开始播放动画,这时候播放按钮标题变为Stop,点击Stop按钮可以停止播放动画. ...

  7. cocos2d-x+lua开发模式下编辑器的选择

    cocos2d-x+lua开发模式下编辑器的选择 原本打算直接用CocosIDE的,毕竟是官方出品,并且支持Android远程调试,windows下的调试也非常方便,调试的信息也非常全,智能提示也不错 ...

  8. cocos2d-x 禁用触摸

    cocos2d-x 禁用触摸(如何快速屏蔽触摸)Cocos2d-x从3.0版本以来,触摸机制有所改变,虽然实现的道理没有变,不过我今天还是写出这篇文章,就当是简单的复习一下3.0的事件分发机制吧,同时 ...

  9. 反编译 cocos2dx+lua

    严正声明:本帖所有的技术手段仅供用于技术学习使用,禁止用于商业目的! 1.准备工作 下载要反编译的 apk 文件(Android安装包),然后解压. 2.获取XXTEA的Key和Sign 目前大多数的 ...

  10. Cocos2dx Lua开发环境搭建

    本文记录在 Windows 下搭建 cocos2dx lua 开发环境,还有调试设置. 系统:Windows 7 64 IDE:Mircrosoft Visual Studio 2013 Cocos2 ...

最新文章

  1. OpenHarmony的多内核
  2. Minimum Diameter Tree
  3. mysql存储word文档_使用MySQL存储和检索word文档
  4. Maven常见问题之【-Dmaven.multiModuleProjectDirctory system property is not set】
  5. 跋山涉水——深入 Redis 字典遍历
  6. 做一个项目,平时都用到哪些工具提高效率(上)[转]
  7. Bootstrap 图片样式
  8. adb连接手机出现Connection refused
  9. CCNA(三)-路由器
  10. 当当网商品详情API接口(当当商品详情接口,当当商品问答接口,当当抢购价接口,当当商品列表接口,当当商品评论接口)代码对接教程
  11. 新媒体渠道运营推广技巧
  12. 扩展卢卡斯 (板子)
  13. python词云分析难吗_【python数据挖掘】使用词云分析来分析豆瓣影评数据
  14. MTK机器原始OTA更新方法
  15. alert的使用方法
  16. B. Shifting Sort (思维)
  17. 支持homekit的智能生态有哪些?
  18. (HTTP代理与socket5)客户端访问,服务器处理步骤
  19. Hadoop原理与技术——hdfs命令行基本操作
  20. Oracle 无备份情况恢复ocr和olr

热门文章

  1. 5分绩点转4分_gpa5分制换算4分制(5分绩点转4分)
  2. 服务器安装找不到lsi驱动,IBM 机架式服务器RAID卡驱动问题
  3. Scratch编程 烧脑算法——换位密码
  4. linux12 -MYSQL数据库 --> 19数据库面试必备手册
  5. io.seata.common.exception.ShouldNeverHappenException: Could not found any index in the table
  6. matlab初值微分方程,常微分方程初值问题的MATLAB解法
  7. 五千来字小作文,是的,我们是有个HTTP。
  8. 360极速浏览器,关闭“开启DirectWrite高清字体渲染支持”导致内置打印崩溃
  9. 计算机应用专业书本推荐,计算机应用基础
  10. std::stable_sort 和 std::for_each 的用法!按结构中某一字段值大小排续!