十手游开发神器cocos2d-xeditor之触摸事件-创新互联
这一节 我将实现让小怪物跟随我的触摸方向移动,同时触摸的地方产生一个四周发散的效果
创新互联是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:成都响应式网站建设、品牌网站设计、成都全网营销。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。成都做网站、成都网站制作、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。效果如下:
代码下载: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
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享标题:十手游开发神器cocos2d-xeditor之触摸事件-创新互联
分享URL:http://myzitong.com/article/gdpeh.html