多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > quick-cocos2d-x游戲開發【9】――單點觸摸

quick-cocos2d-x游戲開發【9】――單點觸摸

來源:程序員人生   發布時間:2014-09-27 05:36:08 閱讀次數:1930次

quick的觸摸機制,我想廖大已經在這篇文章里說的很清楚了,我們這些小輩們就是在他的基礎上完備一下,說說用法就可以了,嘿嘿。


在2.2.3之前的版本(不包括2.2.3),觸摸機制和廖大在那篇文章里面的說的一樣,添加觸摸響應采用addTouchEventListener來完成,不過在此之后,對觸摸機制就進行了完全的改寫,和cocos2dx 3.0的版本一樣,采用更加靈活的CCNode事件分發機制。


如果你對cocos 3.0中觸摸機制很了解,那么quick的觸摸使用起來也很方便。直接來看怎么用。

在前面已經說了,我們添加的節點元素都是在scene中的,但是觸摸響應不能直接給scene添加事件監聽,所以我們可以用一個層來完成。并且,如果能夠接受觸摸響應,還需要開啟觸摸功能。

local layer = display.newLayer() self:addChild(layer) layer:setTouchEnabled(true) layer:setTouchMode(cc.TOUCH_MODE_ONE_BY_ONE) layer:addNodeEventListener(cc.NODE_TOUCH_EVENT, function (event) local x, y, prevX, prevY = event.x, event.y, event.prevX, event.prevY if event.name == "began" then print("layer began") elseif event.name == "moved" then print("layer moved") elseif event.name == "ended" then print("layer ended") end return true end)

從上面的代碼可以看到,可以設置觸摸的模式,

cc.TOUCH_MODE_ONE_BY_ONE 是單點觸摸

cc.TOUCH_MODE_ALL_AT_ONCE 是多點觸摸


在添加節點事件監聽addNodeEventListener中,我們設置監聽事件的類型是cc.NODE_TOUCH_EVENT

這個監聽事件類型,其定義了幾個引擎級事件,分別是,

-- cocos2dx 引擎級事件
c.NODE_EVENT                                           = 0
c.NODE_ENTER_FRAME_EVENT           = 1
c.NODE_TOUCH_EVENT                          = 2
c.NODE_TOUCH_CAPTURE_EVENT     = 3
c.MENU_ITEM_CLICKED_EVENT            = 4
c.ACCELERATE_EVENT                            = 5
c.KEYPAD_EVENT                                       = 6


其次是event參數,在event參數里,里面有name,x,y,prevX,prevY 這五個變量,分別代表著

-- event.name 是觸摸事件的狀態:began, moved, ended, cancelled, added(僅限多點觸摸), removed(僅限多點觸摸)
-- event.x, event.y 是觸摸點當前位置
-- event.prevX, event.prevY 是觸摸點之前的位置


所以添加上面的代碼,簡單觸摸屏幕,就可以看到log中的print的結果。


在觸摸的回調函數function(event)中,記得考慮是否需要添加返回值,返回值的作用不用多說,true則后面的moved,ended等狀態會接收到,否則接收不到,默認如果不添加則代表false。


在新版觸摸機制中,還需要主要的一個就是觸摸吞噬,

setTouchSwallowEnabled(true)

它的作用就是是否繼續傳遞觸摸消息,在繪制節點的時候,越是在屏幕上方,就是zOrder越大,越優先接收到觸摸事件,如果設置吞噬,那么在它下方的節點都不會接收到觸摸消息了。默認如果不設置則quick自動設置為true。


當然,不僅僅可以給layer添加觸摸事件,你也可以給精靈添加,這就看你游戲的需要了。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 青草超级碰碰在线视频 | 亚洲在线一区二区 | 久久99精品久久久久久黑人 | 九色九色九色在线综合888 | 久久视频精品 | 曰本人一级毛片免费完整视频 | 日本一区二区日本免费 | 亚洲欧洲日产国码在线观看 | 欧美精品1区2区 | japanese日本护士xxx爽 | 亚洲乱码一二三四五六区 | 99爱精品 | 中文字幕在线视频网站 | 国产精品一区91 | 在线精品自拍 | 亚洲天堂成人在线 | 成人在激情在线视频 | 日本一区二区成人教育 | 看一级毛片国产一级毛片 | 久久精品无码一区二区日韩av | www日本免费| 91人人草| 一本大道香蕉大无线视频 | 午夜在线播放免费人成无 | 17videosex性欧美 | 欧美日韩国产最新一区二区 | 91精品国产91久久久久久最新 | 欧美14videosex性欧美成人 | 日韩系列第一页 | 国产成人无精品久久久 | 福利网在线 | 国产一级一片免费播放视频 | 亚洲精品在线第一页 | 欧美大陆日韩 | 在线观看视频播放 | 亚洲视频黄色 | 免费观看一级欧美在线视频 | 亚州春色 | 亚洲欧美日产综合在线看 | 亚洲第一视频在线播放 | 红豆视频在线观看日本 |