Quick cocos2dx-Lua(V3.3R1)学习笔记(十三)-----继续触摸事件之多点触摸

在前面,我们提过了单点触摸,下面我们就试一下多点触摸的用法(我用的是cocos code ide进行手机调试,不会的,进入前一篇查看)

function MainScene:ctor()
    local sprite = display.newSprite("close.png")   --自己随便找个图片资源吧
    sprite:align(display.CENTER, display.cx, display.cy)
    sprite:addTo(self)

    sprite:setTouchEnabled(true)
    sprite:setTouchMode(cc.TOUCHES_ALL_AT_ONCE)
    sprite:addNodeEventListener(cc.NODE_TOUCH_EVENT, function (event)
       dump(event)
        return true
    end)
end

只要吧setTouchMode填入多点触摸就行,我们一开始要是不知道这个event里面有什么,我们先dump他,看看他里面有是呢么。在pc上面运行,点击一下看看

我们看到控制台输出,看到points是一个table,我们电脑鼠标只能单点,就输出了points[0]的信息,

在多点触摸中 ,它还拥有added,removed两个独有事件。

function MainScene:ctor()

    local layer = display.newLayer()
    layer:addTo(self)

    layer:setTouchEnabled(true)
    layer:setTouchMode(cc.TOUCHES_ALL_AT_ONCE)
    layer:addNodeEventListener(cc.NODE_TOUCH_EVENT, function (event)
        if event.name == "began" then
            print("触摸开始")
        elseif event.name == "added" then
            print("增加了一个触摸点")

        elseif event.name == "moved" then

        elseif event.name == "removed" then
            print("移除了一个触摸点")
        elseif event.name == "ended" then
            print("触摸结束")

        end
        return true
    end)
end

连接安卓设备调试输出

我将五个手指放上去,看到这个调试信息,事件触发顺序,就能看出来了,第一个点就是触摸开始, 后面慢慢增加,到后面手指离开屏幕,就是一个一个减少,下面我们就就筛选第三个点,当我们第三个点触摸的时候,输出一个信息

function MainScene:ctor()

    local layer = display.newLayer()
    layer:addTo(self)
    layer:setTouchEnabled(true)
    layer:setTouchMode(cc.TOUCHES_ALL_AT_ONCE)
    layer:addNodeEventListener(cc.NODE_TOUCH_EVENT, function (event)
        if event.name == "began" then
            print("触摸开始")
        elseif event.name == "added" then
            print("增加了一个触摸点")
            if "table" == type(event.points["2"]) then
                print("三点触摸")
            end
        elseif event.name == "removed" then
            print("移除了一个触摸点")
        elseif event.name == "ended" then
            print("触摸结束")

        end
        return true
    end)
end

到手机上面输出

我们看到,第三个手机放上去,出现了三点触摸字样,注意,event.point里面的表索引从0开始,第二个点就是event.point[“1”]了。注意不能写成event.point[1],这样是不会出现打印信息的。

时间: 2024-10-15 01:42:28

Quick cocos2dx-Lua(V3.3R1)学习笔记(十三)-----继续触摸事件之多点触摸的相关文章

Cocos2d-x 3.1.1 学习笔记(二)创建自定义项目

一.通过命令创建项目 前面搭建好环境后,怎样创建自己的cocos2d-x项目呢? 先来看看cocos2dx 3.1的目录吧 这就是 cocos2dx 3.1的目录, 3.1版本的创建跟以前的不同了(好吧,又变了),我们先把 download-deps.py 和 setup.py 执行一遍,按住shift+鼠标右键 输入cocos命令 回车 这里会看到一些命令的声明,这里我只说下 创建新的项目,输入命令cocos new 这里 -p      是包名 -l       是文件格式 有cpp.lua

Cocos2dx 3.1.1 学习笔记整理(1)

最近手痒了,不小心下载了cocos2dx 3.1.1,又搞了个VS2012,于是头脑发热的搞起 3.1.1了. 我是有多么的不专心啊. 已经把自己之前的学习内容从2.2.3迁移到了3.1.1,除了骨骼动画相关的之外. 简单记录一下过程: 1 安装与搭建 解压cocos2dx3.1.1版本,根目录下会有download-deps.py和setup.py, 预先用python分别对这两个文件跑一遍,有问题的话解决问题,没问题的话最好了. 2新建项目 跑完以上两个py文件之后,会自己将所有相关的系统环

基于Cocos2dx+Lua v3.x的RichLabel

RichLabel 简介 RichLabel基于Cocos2dx+Lua v3.x解析字符串方面使用了labelparser,它可以将一定格式的字符串,转换为lua中的表结构扩展标签极其简单,只需添加一个遵守规则的标签插件即可,无需改动已存在代码!!! (标签插件都在labels文件夹下) labelparser的详解labelparser在github上的源码RichLabel在github上的源码 支持图片(缩放,旋转,是否可见) 支持文本属性(字体,大小,颜色,阴影,描边,发光) 支持标签

java之jvm学习笔记十三(jvm基本结构)

java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成图形,所以只要你有耐心,仔细,认真,并发挥你的想象力,这一章之后你会充满自信.当然,不是说看完本章,就对jvm了解了,jvm要学习的知识实在是非常的多.在你看完本节之后,后续我们还会来学jvm的细节,但是如果你在学习完本节的前提下去学习,再学习其他jvm的细节会事半功倍. 为了让你每一个知识点都有迹

Swift学习笔记十三:继承

一个类可以继承(inherit)另一个类的方法(methods),属性(property)和其它特性 一.基本语法 class Human{ var name :String init(){ name = "human" println(name) } func description(){ println("name:\(name)") } } class Student:Human{ var score = 0 init(){ super.init() name

Cocos2dx 3.1.1 学习笔记整理(2)

把之前用2.2.3的代码迁移到3.1.1真是个蛋疼的工作,话说3.1.1做的改动还真是大啊. 可以在HelloWorldScene.cpp中看到,之前的各种CCXXX都被废弃了. 例如,新建一个CCLayer现在是Layer, CCScene现在用Scene. 以下是新建一个场景,并在场景中放置一个图片的例子: #pragma once #include "cocos2d.h" USING_NS_CC; class GameMain : public cocos2d::Layer {

dhtmlxgrid v3.0学习笔记

dhtmlxgrid v3.0学习笔记 分类: dhtmlx JavaScript2012-01-31 15:41 1744人阅读 评论(0) 收藏 举报 stylesheetdatecalendarcss日历xml 目录(?)[+] 因为有对于页面显示和打印的需求,所以对于dhtmlxgrid进行了简单的学习,参照dhtmlxgrid给出的例子进行摸索 1.必须引入的js包 [html] view plaincopy <link rel="STYLESHEET" type=&q

Cocos2d-x 3.1.1 学习笔记(三)学习绘图API

关于cocos2d-x 3.1.1 版本的绘图方法有两种 1.使用DrawNode类绘制自定义图形. 2.继承Layer类重写draw()方法. 以上两种方法都可以绘制自定义图形,根据自己的需要选择合适的方法. 一.使用DrawNode类绘制自定义图形 使用DrawNode 类绘制图形是最简单的方法,create一个DrawNode类,然后添加进场景.然后就可以愉快的绘图了. 1 auto s = Director::getInstance()->getWinSize(); 2 //创建 3 a

lua类库 middleclass学习笔记

middleclass使在lua中面象对象变的简单 抄了一遍他的示例代码运行着试了试,基本懂了 local class = require 'middleclass' --类的继承 Person = class('Person') --定义一个Person类 function Person:initialize(name) --构造函数 self.name = name end function Person:speak() --方法 print("Hi,i am " ..self.n