五豫喧,EvenetListenerTouchOneByOne單點(diǎn)觸摸事件

cocos2d-x技術(shù)群新群:117871561
c++技術(shù)交流群:593010226

這里不死摳cocos-lua組件的原理靴跛, 重在快速上手使用, 只針對快速開發(fā)羞延,所以我盡量用簡潔 易懂的 文筆去闡述渣淳。

在一個公司里能運(yùn)用手上的知識 快速的完成一個功能才是最好的,也可已根據(jù)自己的能力和時間 去選擇是不是要深入的了解這些組件及功能伴箩。

當(dāng)然我的文章 也會根據(jù)我對cocos2d-lua的了解程度 不斷更新入愧,完善,希望能幫助在職場打拼的朋友從菜鳥到大神

綜述:單點(diǎn)觸摸事件實(shí)現(xiàn)點(diǎn)擊某個點(diǎn) 而做出預(yù)期的響應(yīng)
注意:單點(diǎn)觸摸事件針對的對象 主要是 Sprite(精靈)赛蔫,layer(層)等節(jié)點(diǎn)對象

示例:

--創(chuàng)建一個場景砂客,單點(diǎn)觸摸事件的實(shí)現(xiàn)都在這個場景中
function HelloScene:createLayer()
--創(chuàng)建一個層
  local   heLayer = cc.Layer:create()
--創(chuàng)建一個背景
   local bg = cc.Sprite:create("bg.png") 
--獲取屏幕大小
lcoal winSize = cc.Director:getInstance():getWinSize()
--設(shè)置背景圖的大小為屏幕的大小
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)

--開始觸摸回掉函數(shù)
  local function touchbegan(touch , event)
  --獲取點(diǎn)擊的node
  local  nNode  = event:getCurrentTarget()
  --獲得觸摸點(diǎn)相對于精靈的坐標(biāo)
  lcoal pos = nNode:convertToNodeSpace(touch:getLocation())
--獲得node的大小
  local size = nNode:getContentSize()
--獲得Node的一個矩陣參數(shù)分別是橫坐標(biāo),縱坐標(biāo)呵恢,寬,高
  lcoal rec = cc.rect(0,0,size.width,size.height)
--判斷點(diǎn)擊范圍是否在這個Node范圍內(nèi) 如果在則進(jìn)行動畫
  if cc.rectContansPoint(rec,pos)
   then
    nNode:runAction(cc.ScaleBy:create(0.1,2))
  end
end
--移動回調(diào)
local function touchmove(touch,event)
  local nNode = event:getCurrentTarget()
loca posX,posY = nNode:getPosition()
--獲得當(dāng)前位置與初始位置的差
  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
--創(chuàng)建OneByOne事件監(jiān)聽器
local listener1 = cc.EventListnerTouchOneByOne:create()
--設(shè)置吞沒事件 設(shè)置true 當(dāng)點(diǎn)擊某個精靈時時間不會傳到下一個層級低的精靈
listener1:setSwallowTouches(true)
--添加開始觸摸事件回掉函數(shù)
listener1:registerScriptHandler(touchbegan,cc.Handler.EVENT_TOUCH_BEGAN)
--添加 移動事件回掉函數(shù)
listener1:registerScriptHandler(touchmove,cc.Handler.EVENT_TOUCH_MOVED)
--添加 觸摸結(jié)束回掉
listener1:registerScriptHandler(touchended,cc.Handler.EVENT_TOUCH_ENDED)
--創(chuàng)建事件分發(fā)器 (負(fù)責(zé)監(jiān)聽器的注冊和注銷媚创,事件的分發(fā))
local eventDispatcher = cc.Director:getInstance():getEventDispatcher()
--添加監(jiān)聽器 參數(shù)分別是  監(jiān)聽器渗钉,圖片標(biāo)簽
 --addEventListenerWithSceneGraphPriority添加的時間優(yōu)先級順序與精靈的顯示順序一樣,當(dāng)圖片重疊時钞钙,觸摸到的時層級最大的哪個
eventDispatcher:addEventListenerWithSceneGraphPriority(listener1,1)
--設(shè)置image2的單點(diǎn)觸摸
--clone()用于獲取新的事件監(jiān)聽器對象
lcoal listener2 = listener1:clone()
eventDispatcher:addEventListenerWithSceneGraphPriority(listener2,2)
return layer
end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鳄橘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子芒炼,更是在濱河造成了極大的恐慌瘫怜,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件本刽,死亡現(xiàn)場離奇詭異鲸湃,居然都是意外死亡赠涮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門暗挑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笋除,“玉大人,你說我怎么就攤上這事炸裆±” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵烹看,是天一觀的道長国拇。 經(jīng)常有香客問我,道長惯殊,這世上最難降的妖魔是什么酱吝? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮靠胜,結(jié)果婚禮上掉瞳,老公的妹妹穿的比我還像新娘。我一直安慰自己浪漠,他們只是感情好陕习,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著址愿,像睡著了一般该镣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上响谓,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天损合,我揣著相機(jī)與錄音,去河邊找鬼娘纷。 笑死嫁审,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赖晶。 我是一名探鬼主播律适,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼遏插!你這毒婦竟也來了捂贿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤胳嘲,失蹤者是張志新(化名)和其女友劉穎厂僧,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體了牛,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡颜屠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年辰妙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汽纤。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡上岗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蕴坪,到底是詐尸還是另有隱情肴掷,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布背传,位于F島的核電站呆瞻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏径玖。R本人自食惡果不足惜痴脾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梳星。 院中可真熱鬧赞赖,春花似錦、人聲如沸冤灾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽韵吨。三九已至匿垄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間归粉,已是汗流浹背椿疗。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留糠悼,地道東北人届榄。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像倔喂,于是被迫代替她去往敵國和親痒蓬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫滴劲、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,105評論 4 62
  • 前言 我選擇開發(fā)一個游戲有很多原因顾复。我覺得自己是“核心”玩家班挖,過去的大部分時間我都花在玩游戲,自己制作芯砸、閱讀和游戲...
    月影檀香閱讀 11,884評論 1 27
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程萧芙,因...
    小菜c閱讀 6,424評論 0 17
  • 今天一早就看到一個朋友的報喜双揪,她和我差不多大动羽,我不知道她在哪里生的,但是從她發(fā)的聊天記錄來看渔期,我知道那個產(chǎn)房也許和...
    親親mom閱讀 454評論 2 0
  • 風(fēng)口解析: 1运吓、新能源汽車 簡單來說,今天的行情雖和昨天想的一樣疯趟,火爆但不及預(yù)期拘哨。從開盤來看,指數(shù)不負(fù)眾望直接上3...
    炒股無名閱讀 188評論 0 0