转载自http://blog.csdn.net/allenice1/article/details/7733340
游戏是互动的,获取用户输入至关重要。cocos2d中目前只有Layer以及其子类默认能够获取用户输入,即触发用户输入的事件。其他节点需要开启触摸事件的话,需要自己手动实现。
现在看一个例子:
- var Green=cc.Layer.extend({
- init:function () {
- var layer1=cc.LayerColor.create(cc.c4(0,255,0,255),320,480);
- this.addChild(layer1);
- this.setKeyboardEnabled(true);
- this.setTouchEnabled(true);
- return true;
- },
- onKeyUp:function (key) {
- window.alert(key);
- },
- onKeyDown:function (key) {
- window.alert(key);
- },
- onTouchesEnded:function (touches,event) {
- alert(touches[0].locationInView().x);
- }
- });
在绿色层左边点击一下,效果如图:
至于可以有哪些事件,自己可以查看API文档的cc.KeypadDelegate和cc.StandardTouchDelegate。
至于其他节点,比如Sprite,需要手动实现,主要用到的方法是:cc.Director.getInstance().getTouchDispatcher().addStandardDelegate()和cc.Director.getInstance().getTouchDispatcher().removeDelegate。一下是我的一个实现。
- var CanTouchSprite=cc.Sprite.extend({
- _touchBegan:false,
- _touchEnabled:true,
- ctor:function(){
- this._super();
- },
- onEnter:function(){
- cc.Director.getInstance().getTouchDispatcher().addStandardDelegate(this, 0);
- this._touchEnabled=true;
- this._super();
- },
- onExit:function(){
- cc.Director.getInstance().getTouchDispatcher().removeDelegate(this);
- this._touchEnabled=false;
- this._super();
- },
- touchRect:function(){
- return this.getBoundingBoxToWorld();
- },
- setTouchEnabled:function(enable){
- if(enable&&!this._touchEnabled){
- cc.Director.getInstance().getTouchDispatcher().addStandardDelegate(this, 0);
- this._touchEnabled=true;
- }
- else if(!enable&&this._touchEnabled){
- cc.Director.getInstance().getTouchDispatcher().removeDelegate(this);
- this._touchEnabled=false;
- }
- },
- onTouchesBegan:function(touches,event){
- if(cc.Rect.CCRectContainsPoint(this.touchRect(),touches[0].getLocation())){
- this._touchBegan=true;
- }
- },
- onTouchesMoved:function(touches,event){
- },
- onTouchesEnded:function(touches,event){
- if(this._touchBegan){
- this._touchBegan=false;
- }
- }
- })
相关推荐
在本教程中,我们将深入探讨如何使用Cocos2d-x框架创建一个简单的游戏。Cocos2d-x是一个开源的游戏开发框架,它基于C++,同时提供了JavaScript和Lua的绑定,适用于移动平台,如iOS、Android以及Windows等。在这个第...
5. **图形渲染**:钢琴界面的美观性很重要,因此开发者需要熟悉Cocos2d-x的绘图API,如DrawNode、Label、SpriteBatchNode等,来绘制钢琴键盘和其他UI元素。 6. **跨平台兼容**:Cocos2d-x的一大优势是跨平台性,...
Cocos2d-x使用了一个基于观察者模式的事件模型,包括触摸事件、键盘事件、加速器事件等。触摸事件主要分为三种类型:`EventType.TOUCH_BEGAN`(触摸开始)、`EventType.TOUCH_MOVED`(触摸移动)和`EventType.TOUCH_...
Cocos2D提供了触摸(Touch)和键盘(Keypad)事件监听机制,让开发者能够响应用户的输入,比如点击屏幕控制角色移动。同时,Cocos2D还支持自定义事件,方便在不同组件间传递信息。 音频管理也是Cocos2D的一大特色。...
在Cocos Creator中,可以使用`cc.keyboard`模块来监听和处理键盘事件。例如,可以设置键盘上的"上"、"下"、"左"、"右"箭头键或"W"、"A"、"S"、"D"键来控制角色移动。开发者需要注册键盘事件监听器,并根据接收到的...
- 在JavaScript脚本中,可以监听键盘事件或触摸事件,例如`cc.EventListener.KEY_DOWN`和`cc.EventListener.TOUCH_MOVE`。 - 当检测到移动事件时,更新主角的位置,根据输入的方向(x, y)来决定移动方向。 3. **...
根据提供的标题、描述以及部分可见内容,我们可以了解到这是一份关于Cocos2D框架下的一个示例项目——“PandaRunDemo(熊猫快跑)”的相关资源分享。下面将从几个方面来详细解析这个项目的背景知识和技术要点。 ###...
游戏引擎类--基于cocos2d的连连看游戏 游戏引擎类--简单炸弹人小游戏源码 游戏引擎类--切水果游戏 游戏引擎类幸运大转盘的抽奖游戏 游戏引擎-推箱子游戏 游戏引擎之雷电游戏的激光子弹 指示器类 指示器(HUD)之...
- cocos2d 游戏引擎的入门知识。 - 简单游戏开发流程介绍。 - **连接设备** - 蓝牙、Wi-Fi 等无线连接技术的应用。 - **加速度传感器** - Core Motion 框架的使用。 - 加速度传感器数据采集与处理。 - **...