zoukankan      html  css  js  c++  java
  • Quick cocos2dx-Lua(V3.3R1)学习笔记(九) ---- 事件篇之单点触摸事件,让我们用精灵模仿一个按钮吧

    本篇就开始讲单点触摸事件,我们在前面用UIPushButton做菜单那篇,就用了触摸事件,只不过我们感觉不出来,我们基本不需要分析触摸消息。这篇我们用一个精灵模仿出按钮效果,加强理解

    至于原理,廖大在文档中讲的很清楚,就不赘叙了。

    Quick的触摸机制(点我点我(*^__^*))

    一般,我们按按钮的时候,总会发现,按钮按下去,按钮会缩小,松开,按钮会恢复原来的大小。

    function MyScene:ctor()
    
    
    	local sprite = display.newSprite("Hello.png")     
    	sprite:align(display.CENTER,display.cx,display.cy)
    	sprite:addTo(self) 
    
    	--下面就是单点触摸的用法
    	sprite:setTouchEnabled(true)  						--设置这个精灵是否能触摸
    	sprite:setTouchMode(cc.TOUCH_MODE_ONE_BY_ONE)		--触摸模式。我们传进单点触摸模式进去
    	sprite: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
    			sprite:setScale(0.9)
    		    elseif event.name == "moved" then
    		       -- sprite:setPosition(cc.p(x,y))		       	
    		    elseif event.name == "ended" then
    		        sprite:setScale(1)  
    		    end
    		    
    	    return true
    	end)
    
    end

    在代码中,我已经注释好关键的地方了

    对于这个cc.NODE_TOUCH_EVENT,这是引擎定义好的事件,下面就是cocos2dx 的引擎时间,我们就用的触摸事件

    -- 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
    
    c.NODE_TOUCH_CAPTURING_PHASE = 0
    c.NODE_TOUCH_TARGETING_PHASE = 1

      

    还有一个疑问就是event,我们要如何得知它里面有哪些东西呢,别怕,quick为我们封装了这个函数----dump函数

    这个函数可以帮我们输出穿进去参数所有内容,当然,如果参数镶嵌层数太深(这个函数默认为3层),你可以在第三个参数穿想要输出多少层。具体用法,自己看源码即可。

    我们在回调函数加个dump(event)



    好了,看的很清楚。下面查看我们做的简单按钮效果图

  • 相关阅读:
    Search smarter with Apache Solr, Part 1: Essential features and the Solr schema
    不错的 solr 使用安装介绍
    Twitter.com 相对于 sina.com 门户网站的优势
    Tag的妙处
    solrj的使用 转
    Search smarter with Apache Solr, Part 2: Solr for the enterprise
    Solrj的使用
    solr实例代码 import org.apache.solr.client.solrj.SolrServer
    一篇 认为未来房价会跌的文章
    Solr Multicore 试用小记 (转)
  • 原文地址:https://www.cnblogs.com/luagame/p/4214332.html
Copyright © 2011-2022 走看看