Cocos2d-x 3.2 Lua演示样例 ClickAndMoveTest(点击移动測试)
 本篇博客介绍Cocos2d-x 3.2Lua演示样例中点击移动的样例,在这个样例你能够得到怎样创建单点触摸的事件和注冊事件监听回调方法。
演示样例代码:
--[[
ClickAndMoveTest.lua
点击与移动
]]-- -- 获取屏幕尺寸
local size = cc.Director:getInstance():getWinSize()
local layer = nil -- 层
local kTagSprite = 1 --精灵标记 local function initWithLayer()
local sprite = cc.Sprite:create(s_pPathGrossini) -- 加入�颜色层,黄色
local bgLayer = cc.LayerColor:create(cc.c4b(255,255,0,255))
layer:addChild(bgLayer, -1) -- 加入�
layer:addChild(sprite, 0, kTagSprite)
-- 设置精灵位置到(20,150)
sprite:setPosition(cc.p(20,150))
-- 运行跳的动作,第一个參数为持续时间,第二个參数为位置,第三个參数为跳的高度,第四个參数跳的次数
sprite:runAction(cc.JumpTo:create(4, cc.p(300,48), 100, 4)) -- 背景层运行无限反复的动作序列,先淡进,再淡出
bgLayer:runAction(cc.RepeatForever:create(cc.Sequence:create(
cc.FadeIn:create(1),
cc.FadeOut:create(1)))) -- 触摸開始
local function onTouchBegan(touch, event)
return true
end -- 触摸结束
local function onTouchEnded(touch, event)
-- 获取点击位置
local location = touch:getLocation() -- 依据标记获取子节点
local s = layer:getChildByTag(kTagSprite)
s:stopAllActions()-- 停止全部动作
-- 运行移动动作,移动到点击的位置
s:runAction(cc.MoveTo:create(1, cc.p(location.x, location.y)))
local posX, posY = s:getPosition() -- 获取精灵的位置
local o = location.x - posX -- X轴的距离
local a = location.y - posY -- Y轴的距离
local at = math.atan(o / a) / math.pi * 180.0 --求角度 ,反正切函数求弧度/π*180.0
--1弧度= 180/π, 1度=π/180 -- 点击位置在下边
if a < 0 then
-- 点击位置在左边
if o < 0 then
at = 180 + math.abs(at)
else
-- 点击位置在右边
at = 180 - math.abs(at)
end
end
-- 运行旋转的动作
s:runAction(cc.RotateTo:create(1, at))
end -- 单点触摸的监听器
local listener = cc.EventListenerTouchOneByOne:create()
-- 注冊两个回调监听方法
listener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN )
listener:registerScriptHandler(onTouchEnded,cc.Handler.EVENT_TOUCH_ENDED )
local eventDispatcher = layer:getEventDispatcher()-- 时间派发器
-- 绑定触摸事件到层其中
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, layer) return layer
end --------------------------------
-- Click And Move Test
--------------------------------
function ClickAndMoveTest()
cclog("ClickAndMoveTest")
local scene = cc.Scene:create()
layer = cc.Layer:create() initWithLayer()
scene:addChild(layer)
scene:addChild(CreateBackMenuItem()) return scene
end


Cocos2d-x有两种触摸事件,一种是单点触摸,一种是多点触摸,本篇博客样例使用的单点触摸事件。
EventListenerTouchOneByOne类
-- 单点触摸的监听器
local listener = cc.EventListenerTouchOneByOne:create()
-- 注冊两个回调监听方法
listener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN )
listener:registerScriptHandler(onTouchEnded,cc.Handler.EVENT_TOUCH_ENDED )
local eventDispatcher = layer:getEventDispatcher()-- 时间派发器
-- 绑定触摸事件到层其中
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, layer)

最后的一个方法绑定节点到监听器中去,触摸优先级越低的越先被触摸。同样优先级的,后加入�的先被触。

假设认为博文对您实用处,请到以下链接为小巫投上神圣的一票。

Cocos2d-x 3.2 Lua演示样例 ClickAndMoveTest(点击移动測试)的更多相关文章

  1. Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理)

    Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理) 本篇博客介绍Cocos2d-x的动作管理样例,这个样例展示了Cocos2d-x的几个动作: MoveTo ...

  2. Cocos2d-x 3.1.1 Lua演示样例 ActionEaseTest(动作)

    Cocos2d-x Lua演示样例 ActionEaseTest(动作)   本篇博客介绍Cocos2d-x中的动作,Cocos2d-x为我们提供了丰富的动作接口,以下笔者就具体介绍一下:   本系列 ...

  3. Cocos2d-x 3.2 Lua演示样例 XMLHttpRequestTest(Http网络请求)

    Cocos2d-x 3.2 Lua演示样例 XMLHttpRequestTest(Http网络请求)     本篇博客介绍Cocos2d-x 3.2Lua演示样例中的XMLHttpRequestTes ...

  4. Cocos2d-x 3.2 Lua演示样例 AssetsManagerTest(资源管理器)

    Cocos2d-x 3.2 Lua演示样例 AssetsManagerTest(资源管理器) 本篇博客介绍Cocos2d-x 为我们提供的一个类--AssetsManager在Lua中的使用样例,效果 ...

  5. Cocos2d-x 3.1.1 Lua演示样例 ActionsProgressTest(进度条)

    Cocos2d-x 3.1.1 Lua演示样例 ActionsProgressTest(进度条) 本篇博客介绍Cocos2d-x中的进度条动画,进度条涉及以下几个重要的类和方法,笔者来给大家具体解说一 ...

  6. Cocos2d-x 3.2 Lua演示样例CurrentLanguageTest(当前语言环境)

    Cocos2d-x 3.2 Lua演示样例CurrentLanguageTest(当前语言环境) 转载请注明:IT_xiao小巫 本篇博客介绍Cocos2d-x 3.2给我们提供的一个样例.获取当前程 ...

  7. Cocos2d-x 3.2 Lua演示样例FontTest(字体測试)

    Cocos2d-x 3.2 Lua演示样例FontTest(字体測试) 本篇博客介绍Cocos2d-x 3.2中Lua測试项目中的FontTest样例,主要使用了字体文件来创建我们想要的字体样式: 第 ...

  8. Cocos2d-x-Lua演示样例项目HelloLua

    Cocos2d-x-Lua演示样例项目HelloLua 本篇博客介绍Cocos2d-x中Lua的实例项目,就是使用Cocos2d-x创建的初始项目执行所呈现的农场,这里笔者取名为HelloLua.本篇 ...

  9. Cocos2d-x 3.2Lua演示样例UserDefaultTest(用户默认配置)

    Cocos2d-x 3.2演示样例UserDefaultTest(用户默认配置) 本篇博客介绍Cocos2d-x 3.2演示样例中的UserDefaulstTest,我们在开发中可能须要用到一些默认配 ...

随机推荐

  1. 页面提交错误,页面间参数传递java.lang.NumberFormatException: null

    多次出现这样的错误,在点击一个按钮触发提交整个页面的事件时,总是报错,不止一次出现这样的错误了. 出现这种问题的分析: 1 我们从这个问题的本身来看,java.lang.NumberFormatExc ...

  2. cct软件测试

    <全国计算机等级考试三级教程:软件测试技术(2016年版)>根据教育部考试中心制订的<全国计算机等级考试三级软件测试技术考试大纲(2013年版)>编写而成.主要内容包括软件测试 ...

  3. POJ 2184 Cow Exhibition 01背包

    题意就是给出n对数 每对xi, yi 的值范围是-1000到1000 然后让你从中取若干对 使得sum(x[k]+y[k]) 最大并且非负   且 sum(x[k]) >= 0 sum(y[k] ...

  4. CocoaPods的install和update卡在“Anylyzing dependencies”的问题解决方式[效率]

    问题 最新CocoaPod更新慢得问题,不管是运行pod install还是podupdate都卡在Anylyzing dependencies. 解决方式 事实上原因是运行两个命令时都会升级Coco ...

  5. H-index因素

    Problem Description Paper quality and quantity have long been used to measure a research's scientifi ...

  6. 使用iftop网络流量监控

    iftop这是一个非常有用的工具.下面的命令监视无线网卡在我的笔记本 iftop -i wlan0 比如,我现在玩音乐视频.iftop显示的信息: 基本说明: 1. 屏幕主要部分都是表示两个机器之间的 ...

  7. QT插件开发方式(没看懂)

    创建一个QT的库项目,删除自动生成的.h和.cpp文件,添加一个接口定义.h文件和一个接口实现类(一个.h一个.cpp).代码如下: 1.接口文件源码 #ifndef PLUGININTERFACE_ ...

  8. 再谈JSON -json定义及数据类型

    再谈json 近期在项目中使用到了highcharts ,highstock做了一些统计分析.使用jQuery ajax那就不得不使用json, 可是在使用过程中也出现了非常多的疑惑,比方说,什么情况 ...

  9. git/github初级运用自如 (转)

    三 . 设置用户信息 这一步不是很重要,貌似不设置也行,但github官方步骤中有,所以这里也提一下. 在git中设置用户名,邮箱 $ git config --global user.name &q ...

  10. PS CC 2014 把一个图层输出为文件的方法

    近期在设计一个Qt控件,须要获得一个圆饼的图片,在用PS绘制后发现保存的时候总是会带着背景,用PNG格式保存之后背景依旧存在.仅仅是变成了透明的.刚才在Google上查到了仅仅保存单一图层而全然没有背 ...