背景:
最近火爆全球的游戏flappy bird让笔者叹为观止,于是花了一天的时间山寨了一个一模一样的游戏,现在把游戏的思路和源码分享出来,代码是基于javascript语言,cocos2d-x游戏引擎,cocos2d-x editor手游开发工具完成的,请读者轻砸;
ps:运行demo必须配置好cocos2d-x editor,暂不支持其他工具。还有demo是跨平台的,可移植运行android,ios,html5移动系统等;
Android Apk下载:(演示效果)
暂时只移植打包到android系统,可下载运行看看效果;
腾讯微云:http://share.weiyun.com/cac18d8c58d40bf2401b3fdeeb6bcb2f
代码下载:
代码集中营免费下载: http://blog.makeapp.co/?p=306&preview=true
csdn下载:http://download.csdn.net/detail/touchsnow/6912707
百度云盘:http://pan.baidu.com/s/1pJnWDb9
金山快盘 :http://www.kuaipan.cn/file/id_25348935635745384.htm?source=1
代码如何移植到各平台:
Android:http://blog.csdn.net/touchsnow/article/details/19176091
html5: http://blog.makeapp.co/?p=245
效果图:
cocos2d-x editor开发工具:
cocos2dx editor,它是开发跨平台的手机游戏工具,运行window/mac系统上,javascript脚本语言,基于cocos2d-x跨平台游戏引擎, 集合代码编辑,场景设计,动画制作,字体设计,还有粒子,物理系统,地图等等的,而且调试方便,和实时模拟;
cocos2dx editor 下载,介绍和教程:http://blog.csdn.net/touchsnow/article/details/19070665;
cocos2dx editor官方博客:http://blog.makeapp.co/;(请持续关注版本更新)
思路和源码:
1 场景设计MainLayer.ccbx,如下图;主要分三层,开始场景、主场景、游戏结束场景,通过显示隐藏控制三个场景的切换。
MainLayer.ccbx代码
2 代码编写MainLayer.js
首先,小鸟在向前飞,其实是底部的路和水管在向左移动,相对的你就感觉小鸟在向右飞了;路循环移动代码:
- MainLayer.prototype.groundRun = function ()
- {
- var action1 = cc.MoveTo.create(0.5, cc.p(-120, 0));
- var action2 = cc.MoveTo.create(0, cc.p(0, 0));
- var action = cc.Sequence.create(action1, action2);
- this.ground.runAction(cc.RepeatForever.create(action));
- }
- MainLayer.prototype.newHose = function (num)
- {
- var hoseHeight = 830;
- var acrossHeight = 300;
- var downHeight = 100 + getRandom(400);
- var upHeight = 1100 - downHeight - acrossHeight;
- var hoseX = 400 * num;
- var HoseName = FP_MAIN_TEXTURE.HOSE;
- var ccSpriteDown = cc.Sprite.createWithSpriteFrameName(HoseName[0]);
- ccSpriteDown.setZOrder(1);
- ccSpriteDown.setAnchorPoint(cc.p(0, 0));
- ccSpriteDown.setPosition(cc.p(hoseX, 0));
- ccSpriteDown.setScaleY(downHeight / hoseHeight);
- var ccSpriteUp = cc.Sprite.createWithSpriteFrameName(HoseName[1]);
- ccSpriteUp.setZOrder(1);
- ccSpriteUp.setAnchorPoint(cc.p(0, 0));
- ccSpriteUp.setPosition(cc.p(hoseX, downHeight + acrossHeight));
- ccSpriteUp.setScaleY(upHeight / hoseHeight);
- this.hoseNode.addChild(ccSpriteDown);
- this.hoseNode.addChild(ccSpriteUp);
- this.hoseSpriteList.push(ccSpriteDown);
- this.hoseSpriteList.push(ccSpriteUp);
- return null;
- }
- MainLayer.prototype.onEnter = function ()
- {
- cc.AnimationCache.getInstance().addAnimations("Resources/flappy_frame.plist");
- this.groundRun();
- this.ground.setZOrder(10);
- this.birdReadyAction();
- this.bird.setZOrder(20);
- this.readyNode.setVisible(true);
- this.overNode.setVisible(false);
- for (var i = 0; i
关注打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?


微信扫码登录