`
makeapp628
  • 浏览: 45185 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

十 手游开发神器 cocos2d-x editor 之触摸事件

阅读更多

这一节 我将实现让小怪物跟随我的触摸方向移动,同时触摸的地方产生一个四周发散的效果

 

效果如下:

 

 

代码下载:http://www.kuaipan.cn/file/id_25348935635744782.htm?source=1

 

 

打开MainLayer.js,把onDidLoadFromCCB函数修改如下,让触摸可用;

 

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. MainLayer.prototype.onDidLoadFromCCB = function () {  
  2.     if (sys.platform == 'browser') {  
  3.         this.onEnter();  
  4.     }  
  5.     else {  
  6.         this.rootNode.onEnter = function () {  
  7.             this.controller.onEnter();  
  8.         };  
  9.     }  
  10.   
  11.     this.rootNode.schedule(function (dt) {  
  12.         this.controller.onUpdate(dt);  
  13.     });  
  14.   
  15.     this.rootNode.onExit = function () {  
  16.         this.controller.onExit();  
  17.     };  
  18.   
  19.     this.rootNode.onTouchesBegan = function (touches, event) {  
  20.         this.controller.onTouchesBegan(touches, event);  
  21.         return true;  
  22.     };  
  23.   
  24.     this.rootNode.onTouchesMoved = function (touches, event) {  
  25.         this.controller.onTouchesMoved(touches, event);  
  26.         return true;  
  27.     };  
  28.     this.rootNode.onTouchesEnded = function (touches, event) {  
  29.         this.controller.onTouchesEnded(touches, event);  
  30.         return true;  
  31.     };  
  32.     this.rootNode.setTouchEnabled(true);  
  33. };  


在文件底部加入 触摸开始,触摸移动,触摸结束函数;

 

 

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. MainLayer.prototype.onTouchesBegan = function (touches, event) {  
  2.     var loc = touches[0].getLocation();  
  3. }  
  4.   
  5. MainLayer.prototype.onTouchesMoved = function (touches, event) {  
  6.     cc.log("onTouchesMoved");  
  7. }  
  8.   
  9. MainLayer.prototype.onTouchesEnded = function (touches, event) {  
  10.     cc.log("onTouchesEnded");  
  11. }  

 

 

再创建小怪物的根据点(x,y)移动的函数;

 

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. MainLayer.prototype.monsterMove = function (x, y) {  
  2.     this.monster.stopAllActions();  
  3.     cc.AnimationCache.getInstance().addAnimations("Resources/snow_frame.plist");//添加帧动画文件  
  4.     var action0 = cc.Sequence.create(cc.MoveTo.create(5, cc.p(x, y)));  //向前移动  
  5.     var actionFrame = cc.Animate.create(cc.AnimationCache.getInstance().getAnimation("monster"));   //获取帧动画  
  6.     var action1 = cc.Repeat.create(actionFrame, 90000);  
  7.     var action2 = cc.Spawn.create(action0, action1); //同步动画  
  8.     this.monster.runAction(action2);  
  9. }  


触摸结束时,加入monsterMove函数,这时触摸一个点,小怪物会立刻移动到该位置;

 

 

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. MainLayer.prototype.onTouchesEnded = function (touches, event) {  
  2.     cc.log("onTouchesEnded");  
  3.     var loc = touches[0].getLocation();  
  4.     this.monsterMove(loc.x, loc.y);  
  5. }  


按照之前博客教过的在particles目录下创建一个发散粒子,现在在触摸的地方加入发散效果,效果周期为3秒,3秒后消失;

 

 

再次打开MainLayer.js,加入创建粒子的函数

 

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. MainLayer.prototype.createParticle = function (name, x, y) {  
  2.     var particle = cc.ParticleSystem.create("Resources/particles/" + name + ".plist");  
  3.     particle.setAnchorPoint(cc.p(0.5, 0.5));  
  4.     particle.setPosition(cc.p(x, y));  
  5.     particle.setPositionType(1);  
  6.     particle.setDuration(3);  
  7.     this.rootNode.addChild(particle);  
  8. }  


同时在触摸结束时加入粒子函数;

 

 

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. MainLayer.prototype.onTouchesEnded = function (touches, event) {  
  2.     cc.log("onTouchesEnded");  
  3.     var loc = touches[0].getLocation();  
  4.     this.monsterMove(loc.x, loc.y);  
  5.     this.createParticle("around", loc.x, loc.y);  
  6. }  


点击运行;一切OK;

 

 

下一篇文章 我会介绍cocos2d-x  editor的音乐和音效       笔者(李元友)

分享到:
评论

相关推荐

    Cocos2d-x 3.x游戏开发实战pdf含目录

    《Cocos2d-x 3.x游戏开发实战》是一本深度探讨Cocos2d-x 3.x框架的游戏开发书籍,适合对游戏编程有兴趣的开发者学习。Cocos2d-x 是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多平台的...

    Cocos2d-x实战:JS卷——Cocos2d-JS开发

    资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...

    cocos2d-x-cocos2d-x-2.2.2.zip

    此外,cocos2d-x的事件系统也是其核心特性之一。它允许开发者方便地处理触摸、键盘、鼠标等各种输入事件,构建出响应性强的交互界面。同时,它的动作(Actions)和动画(Animations)系统,让开发者能够轻松实现复杂...

    Cocos2d-x实战:C++卷(2版)源代码

    5. **事件处理**:Cocos2d-x提供了事件处理机制,包括触摸事件、键盘事件、网络事件等,使得游戏能够响应用户的输入。 6. **声音与音乐**:Cocos2d-x支持音频播放,包括背景音乐和音效,可以实现音效的同步和控制。...

    cocos2d-x事件类

    在使用cocos2d-x开发游戏的过程中,为了实现逻辑和显示相分离。 在下通宵了一个晚上,写出了该事件类。 谨记,该事件只能用于cocos2d-x中。 事件发送者需要继承EventDispatcher类 事件接收者需要继承EventHandle类...

    cocos2d-x_v3.16安装及环境变量配置文档

    cocos2d-x 是一个开源的游戏开发框架,使用 C++ 语言编写,支持多平台发布,包括 iOS、Android、Windows、macOS、Linux 和 Web。cocos2d-x v3.16 是该框架的一个版本号,本文档主要介绍了该版本的安装流程以及环境...

    cocos2d-x API中文文档

    【cocos2d-x API中文文档】是一份详尽的资料,主要涵盖了cocos2d-x游戏引擎的API,这份文档适用于2015年的最新版本。cocos2d-x是一个基于MIT许可证的开源游戏引擎,它以快速、简单且功能强大的特性闻名,允许开发者...

    cocos2d-x windows vs2010配置

    "cocos2d-x windows vs2010 配置详解" 本文将详细介绍如何在 Windows 环境下使用 Visual Studio 2010 配置 Cocos2d-x 游戏引擎。Cocos2d-x 是一个跨平台的游戏引擎,可以在多种平台上运行,包括 Windows、Mac OS X...

    Cocos2d-x实战 JS卷 Cocos2d-JS开发

    《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-x游戏引擎JavaScript版本使用的专业书籍。Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口...

    cocos2d-x-3.1.zip

    Cocos2d-x是一个开源的游戏开发框架,广泛用于2D游戏、实时渲染应用程序和其他互动内容的制作。这个压缩包“cocos2d-x-3.1.zip”包含了Cocos2d-x框架的3.1版本,这是一个经典且相对旧的版本,可能对于那些寻找历史...

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    cocos2d-x 是一个跨平台的游戏开发框架,它基于C++,同时提供了Lua和JavaScript的绑定,让开发者可以方便地在多种操作系统上创建2D游戏、演示程序和其他图形交互应用。这个“cocos2d-x-3.8.zip”压缩包包含的是cocos...

    大富翁手机游戏开发实战基于Cocos2d-x3.2引擎

    资源名称:大富翁手机游戏开发实战基于Cocos2d-x3.2引擎内容简介:李德国编著的《大富翁手机游戏开发实战(基于 Cocos2d-x3.2引擎)》使用Cocos2d-x游戏引擎技术,带领读者一步一步从零开始进行大富翁移动游戏的开发...

    cocos2d-x-3.13.1 spine3.6.zip

    Cocos2d-x是一个广泛使用的开源游戏开发框架,它基于C++,同时支持Lua和JavaScript等多种脚本语言,为开发者提供了高效、跨平台的游戏开发解决方案。在3.13.1版本中,Cocos2d-x对Spine动画引擎的集成进行了更新,这...

    cocos2d-x 动画工具 Flash2Cocos2d-x 1.3

    《cocos2d-x 动画工具 Flash2Cocos2d-x 1.3:将Flash创意带入移动游戏开发》 在移动游戏开发领域,cocos2d-x是一款广泛使用的开源游戏引擎,以其高效、跨平台的特性深受开发者喜爱。而Flash2Cocos2d-x则是一个专为...

    Cocos2d-x实战C++卷关东升著完整版pdf

    接着,书中会讲解Cocos2d-x的事件处理机制,包括触摸事件、键盘事件等,这些都是游戏交互必不可少的部分。同时,还会涉及动画和物理引擎的使用,如动作(Action)、序列(Sequence)、组(Group)以及Box2D物理引擎...

    cocos2d-x 3.0

    《cocos2d-x 3.0:游戏开发中的角色移动技术详解》 在游戏开发领域,cocos2d-x是一款广泛使用的开源2D游戏引擎,尤其在移动平台上的应用非常广泛。cocos2d-x 3.0版本带来了许多性能优化和新特性,使得开发者能够更...

    Cocos2d-x实战++JS卷++Cocos2d-JS开发+PDF电子书下载+带书签目录+完整

    标题中提到了"Cocos2d-x实战++JS卷++Cocos2d-JS开发+PDF电子书下载+带书签目录+完整",这里面包含了几个关键知识点: 1. Cocos2d-x:是一个开源的游戏开发框架,它主要用于开发跨平台的游戏和应用程序,支持iOS、...

    cocos2d-x 跑酷源码

    3. 触摸事件处理:跑酷游戏通常需要响应玩家的触摸操作,如滑动屏幕控制角色移动,cocos2d-x提供了触摸事件监听机制。 4. 物理引擎:Box2D物理引擎用于模拟角色与障碍物的碰撞,实现真实感的运动效果。 5. 游戏逻辑...

    使用cocos2d-x-2.0-2.0.4开发的简单跨平台益智类魔塔小游戏

    - **事件处理**:cocos2d-x的事件系统使得游戏中的用户交互变得简单,例如触摸事件、键盘事件等。 - **场景管理**:使用Scene和Layer进行场景管理,方便地切换游戏的各个部分。 2. **益智类游戏设计**: - **...

    cocos2d-x 案例开发大全 第二章(源码)

    8. **事件处理(Event Handling)**:cocos2d-x的事件模型允许开发者监听和响应用户的触摸、键盘等输入事件,以及游戏内部的事件,如节点的添加或删除。 9. **纹理(Texture)**:cocos2d-x使用Texture Atlas管理纹理,...

Global site tag (gtag.js) - Google Analytics