转载自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实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...
在使用cocos2d-x开发游戏的过程中,为了实现逻辑和显示相分离。 在下通宵了一个晚上,写出了该事件类。 谨记,该事件只能用于cocos2d-x中。 事件发送者需要继承EventDispatcher类 事件接收者需要继承EventHandle类...
Cocos2d-x是移动跨平台开发最流行的游戏引擎,而本书是一本很全面的、比较‘接地气’的游戏开发教程。书中汇聚了热门手机游戏《捕鱼达人》开发的实战经验,作者从最基础的内容开始,逐步深入地介绍了Cocos2d-x的相关...
cocos2d-iphone~cocos2d-html5移植之旅
网页游戏开发之cocos2d-js教程cocos2d-html5教程合集_棒.zip cocos2d-js官方文档 cocos2d-js 入门 cocos2d-html5 http网络请求 小白学游戏编程 常用函数 教程 项目总结
Cocos2d-html5
资源名称:Cocos2d-x入门视频教程(全7讲)资源目录:【】cocos2d-x视频教程_01【】cocos2d-x视频教程_02【】cocos2d-x视频教程_03【】cocos2d-x视频教程_04【】cocos2d-x视频教程_05【】cocos2d-x视频教程_06【】...
cocos2d-x-2.1.5
cocos2d-html5的api文档,官方未提供离线版,本人hack下来的,与在线版本完全一致,希望有用 :)
Cocos2d-JS开发之旅 从HTML 5到原生手机游戏 PDF 带书签目录 完整版 以及Cocos2d-js项目教程 pdf文档
cocos2d-x进阶教程1_5Lua中循环语句和逻辑运算关键字.mp4 cocos2d-x进阶教程1_6LuaTable使用1.mp4 cocos2d-x进阶教程1_7LuaTable使用2.mp4 cocos2d-x进阶教程1_8LuaTable使用3.mp4 cocos2d-x进阶教程1_9LuaTable读写...
Cocos2d-html5 V2.1.4 官方API文档,用google浏览器打开cocos2d-x\www.cocos2d-x.org\reference\html5-js\index.html。
资源名称:大富翁手机游戏开发实战基于Cocos2d-x3.2引擎内容简介:李德国编著的《大富翁手机游戏开发实战(基于 Cocos2d-x3.2引擎)》使用Cocos2d-x游戏引擎技术,带领读者一步一步从零开始进行大富翁移动游戏的开发...
Cocos2d-JS开发之旅 从HTML 5到原生手机游戏 PDF 带书签目录 完整版
cocos2d-html5教程
cocos2d-x教程,cocos2d-x使用方法的一些介绍
cocos2d-x-3.2下载,不多说。或者可以下载另一个资源 cocos引擎老版本集合(cocos2d-x-2.2.1 - 3.5) http://download.csdn.net/download/crazymagicdc/9982656
Cocos2d-x高级开发教程:制作自己的《捕鱼达人》 图书简介: 《Cocos2d-x高级开发教程:制作自己的《捕鱼达人》》是国内第一本全面深入讲解Cocos2d-x进阶内容的图书,Cocos2d-x创始人王哲作序推荐,《捕鱼达人》开发...
《Cocos2d-Js开发之旅-从HTML5到原生手机游戏》源码
《Cocos2D-X游戏开发技术精解》详细介绍如何使用Cocos2D-X引擎开发自己的移动平台游戏。...Cocos2D-HTML5引擎版本;引擎的附加功能等。最后,《Cocos2D-X游戏开发技术精解》和读者一起展望了Cocos2D-X引擎的未来。