Cocos2d-x 3.2 Lua演示样例 ClickAndMoveTest(点击移动測试)
--[[
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
-- 单点触摸的监听器
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(点击移动測试)的更多相关文章
- Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理)
Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理) 本篇博客介绍Cocos2d-x的动作管理样例,这个样例展示了Cocos2d-x的几个动作: MoveTo ...
- Cocos2d-x 3.1.1 Lua演示样例 ActionEaseTest(动作)
Cocos2d-x Lua演示样例 ActionEaseTest(动作) 本篇博客介绍Cocos2d-x中的动作,Cocos2d-x为我们提供了丰富的动作接口,以下笔者就具体介绍一下: 本系列 ...
- Cocos2d-x 3.2 Lua演示样例 XMLHttpRequestTest(Http网络请求)
Cocos2d-x 3.2 Lua演示样例 XMLHttpRequestTest(Http网络请求) 本篇博客介绍Cocos2d-x 3.2Lua演示样例中的XMLHttpRequestTes ...
- Cocos2d-x 3.2 Lua演示样例 AssetsManagerTest(资源管理器)
Cocos2d-x 3.2 Lua演示样例 AssetsManagerTest(资源管理器) 本篇博客介绍Cocos2d-x 为我们提供的一个类--AssetsManager在Lua中的使用样例,效果 ...
- Cocos2d-x 3.1.1 Lua演示样例 ActionsProgressTest(进度条)
Cocos2d-x 3.1.1 Lua演示样例 ActionsProgressTest(进度条) 本篇博客介绍Cocos2d-x中的进度条动画,进度条涉及以下几个重要的类和方法,笔者来给大家具体解说一 ...
- Cocos2d-x 3.2 Lua演示样例CurrentLanguageTest(当前语言环境)
Cocos2d-x 3.2 Lua演示样例CurrentLanguageTest(当前语言环境) 转载请注明:IT_xiao小巫 本篇博客介绍Cocos2d-x 3.2给我们提供的一个样例.获取当前程 ...
- Cocos2d-x 3.2 Lua演示样例FontTest(字体測试)
Cocos2d-x 3.2 Lua演示样例FontTest(字体測试) 本篇博客介绍Cocos2d-x 3.2中Lua測试项目中的FontTest样例,主要使用了字体文件来创建我们想要的字体样式: 第 ...
- Cocos2d-x-Lua演示样例项目HelloLua
Cocos2d-x-Lua演示样例项目HelloLua 本篇博客介绍Cocos2d-x中Lua的实例项目,就是使用Cocos2d-x创建的初始项目执行所呈现的农场,这里笔者取名为HelloLua.本篇 ...
- Cocos2d-x 3.2Lua演示样例UserDefaultTest(用户默认配置)
Cocos2d-x 3.2演示样例UserDefaultTest(用户默认配置) 本篇博客介绍Cocos2d-x 3.2演示样例中的UserDefaulstTest,我们在开发中可能须要用到一些默认配 ...
随机推荐
- 其他主机连接本地主机Tomcat会出现的防火墙问题
当我在A机上开启Tomcat后,B机上打开浏览器不能访问到Tomcat的服务器,这是由于Windows防火墙的原因 可以由以下两种做法: 关闭Windows防火墙: 如果不想关闭Windows防火墙, ...
- linux c编程 多线程(初级)《转载》---赠人玫瑰,手有余香!
原文地址:http://blog.csdn.net/liang890319/article/details/8393120 进程简单的说就是把一段代码复制成多份,并让他们同时执行.进程间通信是为了 ...
- OCA读书笔记(7) - 管理数据库存储结构
7.Managing Database Storage Structures 逻辑结构 数据库的存储结构有物理结构和逻辑结构组成的 物理结构:物理上,oracle是由一些操作系统文件组成的 SQL&g ...
- Velocity教程-脚本语法详解(转)
Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象. 当Veloci ...
- 手把手教你修改pcduino系统默认的音频输出
最近要搞个小玩意儿,要用到pcduino的音频输出,但是系统默认的是输出到hdmi的音频,我的显示器上没有喇叭,只能搞个USB声卡.但是系统默认又不是输出到USB,这里我手把手叫你怎么设置系统默认声卡 ...
- AMR音频编码器概述及文件格式分析
全称Adaptive Multi-Rate,自适应多速率编码,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的. 一.分类 1. AMR: ...
- Delphi的类型转换 good
Delphi是一种强类型转换的语言.在VC中,赋值符用″=″,例如x=1;到了Delphi赋值符就变成了″:=″,例如x:=1. 从赋值时用符号″:=″而不用″=″,就隐约可见Delphi对类型匹配要 ...
- 搜索引擎爬虫蜘蛛的USERAGENT大全
搜索引擎爬虫蜘蛛的USERAGENT大全 搜索引擎爬虫蜘蛛的USERAGENT收集,方便制作采集的朋友. 百度爬虫 * Baiduspider+(+http://www.baidu.com/sea ...
- [初探iOS开发]storyboard的使用
storyboard的目的是为了方便的设计程序view之间的关系,使得程序员把精力都放到核心业务逻辑之上.
- 创建android画笔程序的样例(有镜面效果)
先上图: 关键是在检測到手指移动的时候用mPath.quadTo的方法,android sdk解释是: Add a quadratic bezier from the last point, appr ...