五,EvenetListenerTouchOneByOne单点触摸事件

cocos2d-x技术群新群:117871561
c++技术交流群:593010226

这里不死抠cocos-lua组件的原理, 重在快速上手使用, 只针对快速开发,所以我尽量用简洁 易懂的 文笔去阐述。

在一个公司里能运用手上的知识 快速的完成一个功能才是最好的,也可已根据自己的能力和时间 去选择是不是要深入的了解这些组件及功能。

当然我的文章 也会根据我对cocos2d-lua的了解程度 不断更新,完善,希望能帮助在职场打拼的朋友从菜鸟到大神

综述:单点触摸事件实现点击某个点 而做出预期的响应
注意:单点触摸事件针对的对象 主要是 Sprite(精灵),layer(层)等节点对象

示例:

--创建一个场景,单点触摸事件的实现都在这个场景中
function HelloScene:createLayer()
--创建一个层
  local   heLayer = cc.Layer:create()
--创建一个背景
   local bg = cc.Sprite:create("bg.png") 
--获取屏幕大小
lcoal winSize = cc.Director:getInstance():getWinSize()
--设置背景图的大小为屏幕的大小
bg:setContentSize(WinSize.width,WinSize.height)
bg:setPosition(cc.p(WinSize.width/2,WinSize.height/2))
heLayer:addChild(bg,1)

local image1 = cc.Sprite:create(image_1.png)
image1:setPosition(cc.p(WinSize.width/2,WinSize.height/2))
image1:setTag(1)
bg:addChild(image1,2)

local image2 = cc.Sprite:create(image_2.png)
image2 :setPosition(cc.p(image1:getPositionX(),image1:getPositionY()-100)
image2:setTag(2)
bg:addChild(image2,3)

--开始触摸回掉函数
  local function touchbegan(touch , event)
  --获取点击的node
  local  nNode  = event:getCurrentTarget()
  --获得触摸点相对于精灵的坐标
  lcoal pos = nNode:convertToNodeSpace(touch:getLocation())
--获得node的大小
  local size = nNode:getContentSize()
--获得Node的一个矩阵参数分别是横坐标,纵坐标,宽,高
  lcoal rec = cc.rect(0,0,size.width,size.height)
--判断点击范围是否在这个Node范围内 如果在则进行动画
  if cc.rectContansPoint(rec,pos)
   then
    nNode:runAction(cc.ScaleBy:create(0.1,2))
  end
end
--移动回调
local function touchmove(touch,event)
  local nNode = event:getCurrentTarget()
loca posX,posY = nNode:getPosition()
--获得当前位置与初始位置的差
  local dif = touch:getDelta()
  node:setposition(cc.p(posX+dif.x,posY+dif.y))
node:runAction(cc.Scaleto:create(0.2,1))
end

local function touchended(touch ,event)
local nNode = event:getCurrentTarget()
local pos = nNode:convertToNodeSpace(touch:getLocation())
lcoal size = nNode:getContentSize()
local  rec = cc.rect(0,0,size.width,size.height)
if rectContansPoint(rec,pos)
  then
    nNode:setColor(cc.c3b(0,25,25))
  end
end
--创建OneByOne事件监听器
local listener1 = cc.EventListnerTouchOneByOne:create()
--设置吞没事件 设置true 当点击某个精灵时时间不会传到下一个层级低的精灵
listener1:setSwallowTouches(true)
--添加开始触摸事件回掉函数
listener1:registerScriptHandler(touchbegan,cc.Handler.EVENT_TOUCH_BEGAN)
--添加 移动事件回掉函数
listener1:registerScriptHandler(touchmove,cc.Handler.EVENT_TOUCH_MOVED)
--添加 触摸结束回掉
listener1:registerScriptHandler(touchended,cc.Handler.EVENT_TOUCH_ENDED)
--创建事件分发器 (负责监听器的注册和注销,事件的分发)
local eventDispatcher = cc.Director:getInstance():getEventDispatcher()
--添加监听器 参数分别是  监听器,图片标签
 --addEventListenerWithSceneGraphPriority添加的时间优先级顺序与精灵的显示顺序一样,当图片重叠时,触摸到的时层级最大的哪个
eventDispatcher:addEventListenerWithSceneGraphPriority(listener1,1)
--设置image2的单点触摸
--clone()用于获取新的事件监听器对象
lcoal listener2 = listener1:clone()
eventDispatcher:addEventListenerWithSceneGraphPriority(listener2,2)
return layer
end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,613评论 4 59
  • 前言 我选择开发一个游戏有很多原因。我觉得自己是“核心”玩家,过去的大部分时间我都花在玩游戏,自己制作、阅读和游戏...
    月影檀香阅读 11,513评论 1 27
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,204评论 0 17
  • 今天一早就看到一个朋友的报喜,她和我差不多大,我不知道她在哪里生的,但是从她发的聊天记录来看,我知道那个产房也许和...
    亲亲mom阅读 401评论 2 0
  • 风口解析: 1、新能源汽车 简单来说,今天的行情虽和昨天想的一样,火爆但不及预期。从开盘来看,指数不负众望直接上3...
    炒股無名阅读 181评论 0 0