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

原创 2014年01月25日 12:26:54

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


效果如下:




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



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

MainLayer.prototype.onDidLoadFromCCB = function () {
    if (sys.platform == 'browser') {
        this.onEnter();
    }
    else {
        this.rootNode.onEnter = function () {
            this.controller.onEnter();
        };
    }

    this.rootNode.schedule(function (dt) {
        this.controller.onUpdate(dt);
    });

    this.rootNode.onExit = function () {
        this.controller.onExit();
    };

    this.rootNode.onTouchesBegan = function (touches, event) {
        this.controller.onTouchesBegan(touches, event);
        return true;
    };

    this.rootNode.onTouchesMoved = function (touches, event) {
        this.controller.onTouchesMoved(touches, event);
        return true;
    };
    this.rootNode.onTouchesEnded = function (touches, event) {
        this.controller.onTouchesEnded(touches, event);
        return true;
    };
    this.rootNode.setTouchEnabled(true);
};

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

MainLayer.prototype.onTouchesBegan = function (touches, event) {
    var loc = touches[0].getLocation();
}

MainLayer.prototype.onTouchesMoved = function (touches, event) {
    cc.log("onTouchesMoved");
}

MainLayer.prototype.onTouchesEnded = function (touches, event) {
    cc.log("onTouchesEnded");
}


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

MainLayer.prototype.monsterMove = function (x, y) {
    this.monster.stopAllActions();
    cc.AnimationCache.getInstance().addAnimations("Resources/snow_frame.plist");//添加帧动画文件
    var action0 = cc.Sequence.create(cc.MoveTo.create(5, cc.p(x, y)));  //向前移动
    var actionFrame = cc.Animate.create(cc.AnimationCache.getInstance().getAnimation("monster"));   //获取帧动画
    var action1 = cc.Repeat.create(actionFrame, 90000);
    var action2 = cc.Spawn.create(action0, action1); //同步动画
    this.monster.runAction(action2);
}

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

MainLayer.prototype.onTouchesEnded = function (touches, event) {
    cc.log("onTouchesEnded");
    var loc = touches[0].getLocation();
    this.monsterMove(loc.x, loc.y);
}

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



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

MainLayer.prototype.createParticle = function (name, x, y) {
    var particle = cc.ParticleSystem.create("Resources/particles/" + name + ".plist");
    particle.setAnchorPoint(cc.p(0.5, 0.5));
    particle.setPosition(cc.p(x, y));
    particle.setPositionType(1);
    particle.setDuration(3);
    this.rootNode.addChild(particle);
}

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

MainLayer.prototype.onTouchesEnded = function (touches, event) {
    cc.log("onTouchesEnded");
    var loc = touches[0].getLocation();
    this.monsterMove(loc.x, loc.y);
    this.createParticle("around", loc.x, loc.y);
}

点击运行;一切OK;


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

资料来源:cocos2d-x  editor


相关文章推荐

【Cocos2d-html5游戏引擎学习笔记(1)】游戏引擎初探究和搭建开发环境

这学期学校开始开设html课程,第一想到的是就是cocos2d有一个延伸的html5的引擎版本,于是想试试在网页开发个游戏的想法,便有了此博客了。 话不多说,首先看看这个引擎吧,我是之前学习过coc...

【COCOS2D-HTML5 开发之三】示例项目附源码及运行的GIF效果图

本站文章均为 李华明Himi 原创,转载务必在明显处注明:(作者新浪微博: @李华明Himi ) 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/coco...

三 手游开发神器 cocos2d-x editor 之基础工具 intellij idea

intellij idea 13 注册序列号:亲测有效  Orefa      00066-FEIQE-EEZDY-D9PBH-Z9W0E-SPJS1makeapp   00820-K2S8N-...

十四 手游开发神器 cocos2d-x editor 之串联游戏流程

这一节主要是介绍cocos2dx editor的串联游戏流程。cocos2dx editor是开发跨平台的手机游戏工具,运行window系统上,javascript脚本语言,基于cocos2d-x跨平...

五 手游开发神器 cocos2d-x editor 之贴图(TexturePacker)

这一节主要是介绍cocos2dx editor的贴图功能。cocos2dx editor是开发跨平台的手机游戏工具,运行window系统上,javascript脚本语言,基于cocos2d-x跨平台游...

十一 手游开发神器 cocos2d-x editor 之音乐和音效

这一节主要是介绍cocos2dx editor的背景音乐和音效。cocos2dx editor是开发跨平台的手机游戏工具,运行window系统上,javascript脚本语言,基于cocos2d-x跨...

七 手游开发神器 cocos2d-x editor 之图片字体(LabelBMFont)

这一节主要是介绍cocos2dx editor的图片字体功能,实现分数不停的刷新效果。cocos2dx editor是开发跨平台的手机游戏工具,运行window系统上,javascript脚本语言,基...

八 手游开发神器 cocos2d-x editor 之动画和帧动画

这一节主要是介绍cocos2dx editor的动画和帧动画,让小怪物摇摇晃晃的向前行走。cocos2dx editor是开发跨平台的手机游戏工具,运行window系统上,javascript脚本语言...

六 手游开发神器 cocos2d-x editor 之场景切换

接着上一节,我们已经创建了一个主游戏场景MainLayer,现在我们需要创建一个开始场景StartLayer,包括StartLayer.ccbx和StartLayer.js两个文件,点击StartLa...

手游开发工具cocos2d-x editor初识

原帖地址:http://blog.csdn.net/touchsnow/article/details/18446119 可学习的demo: 7个实战项目 flappy...
  • comhaqs
  • comhaqs
  • 2014年04月24日 08:44
  • 556
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:十 手游开发神器 cocos2d-x editor 之触摸事件
举报原因:
原因补充:

(最多只允许输入30个字)