`
zhouxi2010
  • 浏览: 50989 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

cocos2d-html5教程之-键盘事件和touch事件

阅读更多

转载自http://blog.csdn.net/allenice1/article/details/7733340

游戏是互动的,获取用户输入至关重要。cocos2d中目前只有Layer以及其子类默认能够获取用户输入,即触发用户输入的事件。其他节点需要开启触摸事件的话,需要自己手动实现。

现在看一个例子:

 

[javascript] view plaincopy
 
  1. var Green=cc.Layer.extend({  
  2.       
  3.     init:function  () {  
  4.         var layer1=cc.LayerColor.create(cc.c4(0,255,0,255),320,480);  
  5.   
  6.         this.addChild(layer1);  
  7.         this.setKeyboardEnabled(true);  
  8.         this.setTouchEnabled(true);  
  9.   
  10.         return true;  
  11.     },  
  12.   
  13.     onKeyUp:function (key) {  
  14.         window.alert(key);  
  15.     },  
  16.   
  17.     onKeyDown:function (key) {  
  18.         window.alert(key);  
  19.     },  
  20.   
  21.     onTouchesEnded:function (touches,event) {  
  22.         alert(touches[0].locationInView().x);  
  23.     }  
  24. });  

 

在绿色层左边点击一下,效果如图:

至于可以有哪些事件,自己可以查看API文档的cc.KeypadDelegate和cc.StandardTouchDelegate。

至于其他节点,比如Sprite,需要手动实现,主要用到的方法是:cc.Director.getInstance().getTouchDispatcher().addStandardDelegate()和cc.Director.getInstance().getTouchDispatcher().removeDelegate。一下是我的一个实现。

 

[javascript] view plaincopy
 
  1. var CanTouchSprite=cc.Sprite.extend({  
  2.     _touchBegan:false,  
  3.     _touchEnabled:true,  
  4.     ctor:function(){  
  5.         this._super();  
  6.     },  
  7.     onEnter:function(){  
  8.         cc.Director.getInstance().getTouchDispatcher().addStandardDelegate(this, 0);  
  9.         this._touchEnabled=true;  
  10.         this._super();  
  11.     },  
  12.     onExit:function(){  
  13.         cc.Director.getInstance().getTouchDispatcher().removeDelegate(this);  
  14.         this._touchEnabled=false;  
  15.         this._super();  
  16.     },  
  17.     touchRect:function(){  
  18.         return this.getBoundingBoxToWorld();  
  19.     },  
  20.     setTouchEnabled:function(enable){  
  21.         if(enable&&!this._touchEnabled){  
  22.             cc.Director.getInstance().getTouchDispatcher().addStandardDelegate(this, 0);  
  23.             this._touchEnabled=true;  
  24.         }  
  25.         else if(!enable&&this._touchEnabled){  
  26.             cc.Director.getInstance().getTouchDispatcher().removeDelegate(this);  
  27.             this._touchEnabled=false;  
  28.         }  
  29.     },  
  30.     onTouchesBegan:function(touches,event){  
  31.         if(cc.Rect.CCRectContainsPoint(this.touchRect(),touches[0].getLocation())){  
  32.             this._touchBegan=true;  
  33.         }  
  34.     },  
  35.     onTouchesMoved:function(touches,event){  
  36.   
  37.     },  
  38.     onTouchesEnded:function(touches,event){  
  39.         if(this._touchBegan){  
  40.             this._touchBegan=false;  
  41.         }  
  42.     }  
  43. })  
分享到:
评论

相关推荐

    How to make a cocos2d-x simple game(第二部分)

    在本教程中,我们将深入探讨如何使用Cocos2d-x框架创建一个简单的游戏。Cocos2d-x是一个开源的游戏开发框架,它基于C++,同时提供了JavaScript和Lua的绑定,适用于移动平台,如iOS、Android以及Windows等。在这个第...

    cocos2dx 钢琴

    5. **图形渲染**:钢琴界面的美观性很重要,因此开发者需要熟悉Cocos2d-x的绘图API,如DrawNode、Label、SpriteBatchNode等,来绘制钢琴键盘和其他UI元素。 6. **跨平台兼容**:Cocos2d-x的一大优势是跨平台性,...

    cocos2dx 精灵触摸事件的实现

    Cocos2d-x使用了一个基于观察者模式的事件模型,包括触摸事件、键盘事件、加速器事件等。触摸事件主要分为三种类型:`EventType.TOUCH_BEGAN`(触摸开始)、`EventType.TOUCH_MOVED`(触摸移动)和`EventType.TOUCH_...

    Cocco2D开发经典教程

    Cocos2D提供了触摸(Touch)和键盘(Keypad)事件监听机制,让开发者能够响应用户的输入,比如点击屏幕控制角色移动。同时,Cocos2D还支持自定义事件,方便在不同组件间传递信息。 音频管理也是Cocos2D的一大特色。...

    Cocos creator中一些控制人物的移动方式总结.zip

    在Cocos Creator中,可以使用`cc.keyboard`模块来监听和处理键盘事件。例如,可以设置键盘上的"上"、"下"、"左"、"右"箭头键或"W"、"A"、"S"、"D"键来控制角色移动。开发者需要注册键盘事件监听器,并根据接收到的...

    【cocos creater】7.仿《弓箭传说》- 控制主角朝向敌人.rar

    - 在JavaScript脚本中,可以监听键盘事件或触摸事件,例如`cc.EventListener.KEY_DOWN`和`cc.EventListener.TOUCH_MOVE`。 - 当检测到移动事件时,更新主角的位置,根据输入的方向(x, y)来决定移动方向。 3. **...

    coco2d源码PandaRunDemo(熊猫快跑)

    根据提供的标题、描述以及部分可见内容,我们可以了解到这是一份关于Cocos2D框架下的一个示例项目——“PandaRunDemo(熊猫快跑)”的相关资源分享。下面将从几个方面来详细解析这个项目的背景知识和技术要点。 ###...

    史上最全的ios开发源码

    游戏引擎类--基于cocos2d的连连看游戏 游戏引擎类--简单炸弹人小游戏源码 游戏引擎类--切水果游戏 游戏引擎类幸运大转盘的抽奖游戏 游戏引擎-推箱子游戏 游戏引擎之雷电游戏的激光子弹 指示器类 指示器(HUD)之...

    Ipad 应用开发实战

    - cocos2d 游戏引擎的入门知识。 - 简单游戏开发流程介绍。 - **连接设备** - 蓝牙、Wi-Fi 等无线连接技术的应用。 - **加速度传感器** - Core Motion 框架的使用。 - 加速度传感器数据采集与处理。 - **...

Global site tag (gtag.js) - Google Analytics